【问题标题】:Visual Studio - building different releases for assemblies with the same nameVisual Studio - 为同名的程序集构建不同的版本
【发布时间】:2019-02-18 17:44:31
【问题描述】:

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

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

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

我怎样才能更好地自动化这个构建过程,这样我就可以同时构建我需要的所有版本,指向同名.dll的适当版本?

【问题讨论】:

  • 预构建事件可能吗?
  • 构建配置怎么样?所以现在你有DebugRelease,你可以有Release Api v1Release Api v2等等。
  • 实际上是什么@DavidG 的胜利
  • 好的,我试试看...不过我不认为我可以添加所有引用,因为它们的名称相同,所以构建配置不会有它需要的所有资源。
  • 但是构建配置也可以改变引用。

标签: c# visual-studio build reference


【解决方案1】:

我会通过构建配置来做到这一点。如果您为每个版本创建一个配置,您可以像这样编辑您的 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 ...

【讨论】:

  • 是的,这看起来像我要找的。干杯!
猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 2010-09-08
  • 1970-01-01
  • 2014-06-22
相关资源
最近更新 更多