我有一个用于第三方软件的插件,我引用了它们的程序集-称之为Api.dll
。
每年Api.dll
被更新。我想支持过去几年的版本。
由于程序集名称相同,所以我不能只添加它们并使用编译时标志-我必须手动删除,添加,重建。
如何更好地自动化此构建过程,以便可以同时构建我需要的所有版本,并指向同名.dll
的适当版本?
答案 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 ...