sni*_*ker 54 build-process assemblies reference visual-studio
我有一个项目,通过他们的API为另一个应用程序添加一些可扩展性.但是,我希望能够为其应用程序的多个版本使用相同的项目,因为大多数代码都是相同的.
但是,每个版本的应用程序都需要引用该版本软件的正确程序集.他们将程序集加载到GAC中,所以即使我可以根据构建配置指定要使用的程序集的版本,我也没关系.有没有办法从VS内部执行此操作,还是需要外部构建工具?
adr*_*nks 59
有一种方法可以做到这一点,但您必须手动编辑项目文件.项目文件可以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>
Run Code Online (Sandbox Code Playgroud)
然后定义几个构建配置(V1,V2,V3),并且每个参考将被包括仅在相关的选择生成配置.
将此与#if代码中的条件编译符号和语句相结合,您应该能够做到您想要的.
如果这样做,要注意的是Visual Studio很容易从项目文件中删除条件属性.
swe*_*tfa 11
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\SharedLibs\log4net\$(Platform)\$(Configuration)\log4net.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)
您可以使用属性替换提示路径:
$(Configuration)等同于Release/Debug或您拥有的任何其他配置.$(平台)相当于x86/x64 /任何CPU
如果您的配置包含任何CPU,那么您需要在$(配置)周围放置单引号
另请参阅adrianbanks引用的条件选项
| 归档时间: |
|
| 查看次数: |
12517 次 |
| 最近记录: |