在VS2010的项目的程序集引用中使用环境变量

在项目文件中的引用节点有如下配置:

 <ItemGroup>
    <Reference Include="ClassLibrary1">
      <HintPath>D:/Test/ClassLibrary1.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Deployment" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>

如何使D:/Test不使用绝对路径而使用一个可变的参数化路径呢,直接的相对路径是本身就支持的,可变的参数如果是系统内置的如$(MSBuildToolsPath)也是支持的,但如果要自定义一个变量如何支持呢?

这就要用到自定义ToolsVersion的配置了,VS2010却省的ToolsVersion为4.0,注册表位置:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSBuild/ToolsVersions/4.0

只要在这个下面添加键值就行了,如添加一个字符串值:

TEST_PATH REG_SZ  "D:/Test"

则就可以把上面的相应的配置改为用变量引用了:

<Reference Include="ClassLibrary1">
      <HintPath>$(TEST_PATH)/ClassLibrary1.dll</HintPath>
</Reference>

而注册表的值是可以引用环境变量的:

假如已经设置了环境变量:TEST_PATH="D:/TEST";

则可以把TEST_PATH注册表的值改为:

TEST_PATH REG_SZ  %TEST_PATH%

这样动态改变环境变量,则相应的TOOLSVERSION的值也改变了。

有时需要注意MSBUILD的配置缓存。

所有环境变量都可作为属性在 Microsoft Build Engine (MSBuild) 项目文件中使用,如:引用%TEST_PATH% ,使用$(TEST_PATH)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值