如何允许具有不同目标平台的项目依赖于另一个共享项目

本文关键字:项目 依赖于 另一个 共享 平台 目标 何允许 | 更新日期: 2023-09-27 18:30:56

我有一个包含一些共享代码的 C# 库项目。另外两个项目依赖于此代码。项目 A 只能面向 x86,因为它的一个依赖项仅为 x86。项目 B 以任何 CPU (MSIL) 为目标,因为它将由其他 Any CPU 代码使用。我希望项目 B 保留任何 CPU,以便尽可能灵活,因为它将来可能会被其他几个应用程序使用。

下面是一个简单的依赖关系图。所有这些项目都驻留在同一个解决方案中。我目前正在使用Visual Studio 2012和.NET 4.5。

     Project B C# (Any CPU)          Project A C# (x86)
               |                           |  |
               |---> Shared C# Code  <-----|  |------> Native Code (x86 only)

有什么方法可以让Visual Studio同时构建共享代码的任何CPU和x86版本,并使其他项目依赖于正确的版本?

如何允许具有不同目标平台的项目依赖于另一个共享项目

你不能让VS同时构建同一项目的不同配置(这也是值得怀疑的)。但是您描述的设置非常基本,通常可以通过单独的平台/配置组合(右键单击解决方案->配置管理器)来解决。例如(--的意思是"不在乎"):

Release/AnyCPU
                       Build  Platform  Configuration
      SharedProject    x      AnyCPU    Release  
      ProjectA                --        --
      ProjectB         x      AnyCPU    Release 
Release/x86
                       Build  Platform  Configuration
      SharedProject    x      x86       Release  
      ProjectA         x      x86       Release 
      ProjectB                --        --

最后,如果您想一键构建多个配置,请查看构建>批量构建。