Visual Studio-为具有相同名称的程序集构建不同的版本

时间:2018-09-13 23:26:18

标签: c# visual-studio build reference

我有一个用于第三方软件的插件,我引用了它们的程序集-称之为Api.dll

每年Api.dll被更新。我想支持过去几年的版本。

由于程序集名称相同,所以我不能只添加它们并使用编译时标志-我必须手动删除,添加,重建。

如何更好地自动化此构建过程,以便可以同时构建我需要的所有版本,并指向同名.dll的适当版本?

1 个答案:

答案 0 :(得分:3)

我会用构建配置来做到这一点。如果您为每个版本创建一个配置,则可以像这样编辑csproj文件:

<Reference Include="v1/Api.dll" Condition="'$(Configuration)'=='Release Api v1'" />
<Reference Include="v2/Api.dll" Condition="'$(Configuration)'=='Release Api v2'" />
<Reference Include="v3/Api.dll" Condition="'$(Configuration)'=='Release Api v3'" />

执行此操作将根据配置更改所引用的库。

此外,如果每个版本需要特定的代码,则可以为每种配置添加一些编译符号并使用#if ...