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

时间:2013-09-12 01:50:26

标签: c# .net visual-studio msbuild

我有一个包含一些共享代码的C#库项目。另外两个项目依赖于此代码。项目A只能以x86为目标,因为其中一个依赖项仅为x86。项目B的目标是任何CPU(MSIL),因为它将被其他任何CPU代码使用。我希望Project 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版本的共享代码,让其他项目依赖于正确的版本吗?

1 个答案:

答案 0 :(得分:1)

你不能让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                --        --

最终,如果您只需点击一下即可构建多个配置,请查看Build-&gt; Batch Build。