如何轻松切换构建的参考路径?

Tru*_*an1 3 .net c# msbuild visual-studio-2010 visual-studio-2008

我有一个项目是一个软件.所以我在我的项目中引用了该软件的DLL库,因此我可以通过他们的API编写代码并为软件制作一些不错的插件和扩展.

问题是该软件有多种版本:Enterprise,Lite,1.6版,1.7版,2.0版等.如果我希望我的项目适用于所有这些不同版本,我必须复制我的项目并重新指向DLL引用相应软件版本的DLL库(我现在正在这样做).这真的很烦人,因为我的代码库对于所有版本都是相同的,所以当我进行任何更新时,我必须同步所有重复的项目,所以我有每个软件版本的构建.

有没有办法让我可以拥有一个项目,但在我构建之前,选择要构建的软件版本?我想我正在寻找一种简单的方法来更新项目中DLL引用的路径.任何想法或提示将不胜感激.

(如果有帮助,我可以使用Visual Studio 2008或2010和.NET 3.5或4.0)

Jef*_*ado 8

我直接使用项目文件的经验非常有限,但我很确定你可以为许多不同的设置添加条件.在您的情况下,您可以向a Reference或关联添加条件ItemGroup.

然后你可以这样做:

<ItemGroup>
  <Reference Include="System" />
  <Reference Include="System.Core" />
  <Reference Include="System.Data.Linq" />
  <Reference Include="System.Xml.Linq" />
  <Reference Include="MyLibrary" Condition=" '$(ProjectVersion)'=='4' ">
    <HintPath>..\..\..\..\..\..\..\Libv4\MyLibrary.dll</HintPath>
  </Reference>
  <Reference Include="MyLibrary" Condition=" '$(ProjectVersion)'=='5' ">
    <HintPath>..\..\..\..\..\..\..\Libv5\MyLibrary.dll</HintPath>
  </Reference>
  ...
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

语法可能有误,但想法就在那里.我相信这样做是可行的.