簡體   English   中英

在Visual Studio中對具有不同目標平台的另一個項目的項目引用

[英]Project reference to another project with different target platform in Visual Studio

我正在Visual Studio中開發Azure Function,它在本地運行良好。 當我嘗試發布到AZ時,它給了我失敗的錯誤:請通過構建配置管理器將項目B目標平台更改為x64。

但是我已經這樣做了,否則它甚至不能在本地運行。 但是,右鍵單擊項目B的屬性后,沒有在對話框中將目標平台更改為x64。

問題是我在此處進行更改后,即使在本地也無法使用。 具有目標平台AnyProject的項目A引用了對象B的另一個CPU給了我另一個錯誤:項目A:無法加載文件或程序集,項目B。

關於整個事情如何在本地和Azure上運行的任何想法。 一開始我在錯誤的地方嗎?

它們都在同一解決方案中,正在執行的項目調用Porject A,而項目A調用項目B

謝謝!

我在“屬性”頁面(也可以在“項目” Properties> Build上單擊鼠標右鍵)發現“ Platform target確實控制了平台。 將其保留為Any CPU並將Configuration manager更改為x64,將項目構建為x86,即Any CPU的首選項。 我還在一個全新的項目中找到了,將Configuration manager修改為x64, Platform target自動更改為x64,並且將項目內置到x64位中。

因此,我猜想本地運行良好是因為以前您的項目實際上是針對x86的。 更改Platform target后,由於項目平台的不一致,x64無法正常工作。

基於此,我建議就像@Jeremy所說的那樣,確保所有項目Platforms都設置為Any CPU ,我們可以直接刪除x64平台設置以進行干凈的配置。


如果您選擇將所有項目平台設置為x64,請執行以下步驟。

VS默認使用x86運行時,要調試x64功能,我們必須下載x64 cli(包含運行時)並手動配置。

  1. 請訪問cli發行說明以下載最新的x64位(對於v1 .NET Framework函數,為1.x;對於v2 .NET Core函數,為2.x)。 例如,對於OS Windows上的v2函數,我們可以選擇Azure.Functions.Cli.min.win-x64.2.4.317

  2. 右鍵單擊您的項目->屬性,在下面進行調試配置。

     Launch: Executable Executable: [x64CliPath]\\func.exe Application Arguments: host start 

    在此處輸入圖片說明

  3. 發布之前,請不要忘記在Azure門戶中的“應用程序”設置上將“平台”修改為64位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM