繁体   English   中英

在 Visual Studio 中引用一个项目并为特定平台构建它

[英]Reference a project in Visual Studio and build it for a specific platform

我有一个项目 A,它应该是为 x86 构建的,它依赖于另一个为 x64 构建的项目 B。 我当然可以按原样构建它,但我不希望出现运行时问题。

所以我的想法是设置项目 A,这样如果我想为 x86 构建它,我可以参考项目 B,但它是为 x86 构建的,如果我想为 x64 构建项目 A,那么我参考项目 B 但有它为 x64 构建。 这可能吗?

我在项目 A 的.csproj 中设置了一个条件,例如:

<ItemGroup Condition=" '$(Platform)' == 'x86' ">

    <ProjectReference Include="..\Project B\projB.csproj">
      <Project>{678c5dc7-7a1c-45g3-bffe-a4754c64f027}</Project>
      <Name>projB</Name>
    </ProjectReference>
</ItemGroup>

<!-- x64 specific referneces -->
<ItemGroup Condition=" '$(Platform)' == 'x64' ">

    <ProjectReference Include="..\Project B\projB.csproj">
      <Project>{678c5dc7-7a1c-45g3-bffe-a4754c64f027}</Project>
      <Name>projB</Name>
    </ProjectReference>
</ItemGroup>

但我不知道如何为特定平台构建引用的项目。 我知道我可以只使用两个版本的.dll 并为正常引用应用条件,但想看看这是否可行。 可能吗? 我是否需要两个独立的相同项目但具有不同的目标平台才能做到这一点?

如果您能帮助我,将不胜感激,谢谢!

在 Visual Studio 中引用一个项目并为特定平台构建它

项目参考是完全不同的。 而您提供的是基于项目A在不同平台上构建项目。 Project B不会根据A中的平台变化,使用对应版本的平台来构建 Project B。

Project Reference其实就是先构建项目B,再构建项目A ,引用对应的项目B。 它需要重新配置。

更新

在您的情况下,在构建项目A时,它有一个条件,例如Condition=" '$(Platform)' == 'x86' " ,它只是基于项目A的当前平台,但是这个参数不能传递给项目B 将项目编译为x86 所以你应该

因此,您需要手动更改B的平台以实现您的目标。

解决方案

1) Build -> Configuration Manager并像这样进行更改以构建您的项目。

在此处输入图像描述

或者

在此处输入图像描述

2)使用x86 A时,应先将 Project B更改为x86平台,使用x64进行相同操作时,还应对 Project B 执行相同操作。

右键单击您的项目 A 和 B--> Properties --> Build --> 将Platform target更改为 x64 或 x86。

然后就可以在项目A的输出路径文件夹中得到同平台的output文件。

此外,您可以同时尝试基于x64x86平台(可以参考此链接),然后使用Z0F635D0EE0ED0EE0ED0EF38774FFF8B581C132E6C76C7APBLY,然后使用Z0F635D0EE0EF3874C.7A.A7AA(ZORPORTION)。 ) 对应项目B.dll。

希望它可以帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM