locked
MSBuild FAQ: 在MSBuild文件中如何设置环境变量? RRS feed

答案

  • 没有直接的方法来设置默认的MSBuild文件的环境变量,但是你可以写一个任务来做到这一点。首先,你需要的是创造一个新的C#类库项目,并写一个这样的任务:

      代码示例:

      using Microsoft.Build.Framework;

      using Microsoft.Build.Utilities;

     namespace MSBuildtasks

     {

      public class SetEnvVar : Task

     {

     private string _variable;

      private string _value;

    [Required]

          public string Variable

         {           get { return _variable; }

             set { _variable = value; }

      }

          [Required]

            public string Value

            {

              get { return _value; }

             set { _value = value; }

            }

          public override bool Execute()

            {

                Environment.SetEnvironmentVariable(_variable, _value);

              return true;        }

        }

      }

       然后在项目文件中使用它:

     代码示例:

     <UsingTask TaskName="MSBuildTasks.SetEnvVar"

            AssemblyFile="$(RootDir)Tools\Bin\MSBuildTasks.dll"/>

     <PropertyGroup>

      <TestPath>$(VS90COMNTOOLS)..\..</TestPath>

     </PropertyGroup>

     <Target Name="PrepareBuildEnvironment">

      <!-- To dump the env run msbuild with /p:DumpEnv=y switch -->

      <SetEnvVar Variable="TestPath" Value="$(TestPath)"/>

      <Message Condition="'$(DumpEnv)' != ''" Text="DumpEnv Requested:" />

      <Exec Condition="'$(DumpEnv)' != ''" Command="set" />

     </Target>

    相关帖子:

    http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/0fb8d97d-513e-4d37-8528-52973f65a034


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年5月13日 8:40