Visual Studio Addin - 在项目加载后更改项目引用而不“真正”更改它们

时间:2012-01-08 03:35:27

标签: visual-studio visual-studio-2010 visual-studio-addins

所以我们的构建系统和源代码控制系统来自Perforce,这是一个poopers。

我们想要将项目中dll的引用更改为其他位置,例如,当前引用可能是C:\ blah \ debug \ blah.dll,我们要更改它d:\ codeinjected \ blah \ debug \ blah.dll

但是我们不希望这样做是VStudio项目文件,因为那也是我们的MSBuild构建实验室文件,所以有没有办法制作一个可以动态执行的插件,而无需实际更改引用?

1 个答案:

答案 0 :(得分:1)

听起来你似乎想要改变Visual Studio项目的引用DLL的位置。最简单的方法是在MsBuild文件中添加condional结构。

<Reference Condition="$(OnDevMachine)">
  ...
</Reference>
<Reference Condition="$(OnLabMachine)">
  ...
</Reference>

另一种选择是为所有项目提供一个通用的msbuild文件。在该特定项目中,您可以创建指向引用目录的条件定义值,并让每个叶项目引用该变量。这将是更少的代码,可能更适合你的构建人。

<PropertyGroup>
  <ReferenceDir Condition="$(OnDevMachine) == 'true'">Some\Dev\Path</ReferenceDir> 
  <ReferenceDir Condition="$(OnLabMachine) == 'true'">Some\Lab\Path</ReferenceDir>
</PropertyGroup>