Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何允许具有不同目标平台的项目依赖于另一个共享项目?_C#_.net_Visual Studio_Msbuild - Fatal编程技术网

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

C# 如何允许具有不同目标平台的项目依赖于另一个共享项目?,c#,.net,visual-studio,msbuild,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)

我有一个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)
projectbc#(任何CPU)projectacc#(x86)
|                           |  |
|--->共享C#代码本机代码(仅限x86)

有没有办法让Visual Studio同时生成任意CPU和x86版本的共享代码,并让其他项目依赖于正确的版本?

您不能同时对同一项目进行VS生成不同的配置(这是否有益也值得怀疑)。但是您描述的设置非常基本,通常通过使用单独的平台/配置组合(右键单击解决方案->配置管理器)来解决。例如(
--
表示“不在乎”):


最后,如果您想通过一次单击构建多个配置,请查看构建->批量构建。

您不能同时对同一项目进行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                --        --