簡體   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