visual-studio - 有没有办法根据 Visual Studio 中的构建配置指定程序集引用?

标签 visual-studio build-process assemblies reference

我有一个项目,它通过 API 为另一个应用程序添加了一些可扩展性。但是,我希望能够将同一个项目用于其应用程序的多个版本,因为大多数代码是相同的。

但是,应用程序的每个版本都需要引用该版本软件的正确程序集。他们将程序集加载到 GAC 中,因此即使我可以根据构建配置指定要使用的程序集的版本,我也可以。有没有办法从 VS 内部执行此操作,或者我需要外部构建工具吗?

最佳答案

有一种方法可以做到这一点,但您必须手动编辑项目文件。项目文件的许多元素(包括引用元素)中都可以应用一个 Condition 属性。

您可以将这些添加到您的引用中以指定何时应使用该引用:

<Reference Include="Product, Version=1.0.0.0" Condition="'$(Configuration)'=='V1'">
</Reference>
<Reference Include="Product, Version=2.0.0.0" Condition="'$(Configuration)'=='V2'">
</Reference>
<Reference Include="Product, Version=3.0.0.0" Condition="'$(Configuration)'=='V3'">
</Reference>

然后,您定义多个构建配置(V1V2V3),每个引用将仅包含在相关的所选构建配置中.

将其与代码中的条件编译符号和 #if 语句相结合,您应该能够执行您想要的操作。

如果执行此操作,需要注意的一点是,Visual Studio 很容易从项目文件中删除条件属性。

关于visual-studio - 有没有办法根据 Visual Studio 中的构建配置指定程序集引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1786917/

相关文章:

c# - 将本地数据库放在 Visual Studio 解决方案中的什么位置?

c++ - Visual Studio 中不同编译选项的不同源文件

c++ - 在 Eclipse 中为 C 项目处理不同的构建场景

c# - 如何使用IDE控件属性里面的变量?

vb.net - .NET 调试/发布的不同引用列表

iPhone 游戏开发者 - 你们的工具链是什么样的?

sharepoint - 是否可以使用持续集成技术为 sharepoint 进行开发?

C# CLR 程序集查询

.net - fsi.exe 程序集 : Anyone know how to embed it?

.net - 如何从类型的程序集限定名中提取程序集全名?