簡體   English   中英

錯誤:在部署.Net core 2.2 時,找不到應用程序依賴項清單中指定的程序集 Package:Newtonsoft.Json

[英]Error: An assembly specified in the application dependencies manifest not found Package:Newtonsoft.Json when deploying .Net core 2.2

我正在使用自包含部署並使用一些 3rd 方庫(如 log4net 和 Newtonsoft.Json)來部署 a.Net core 2.2 控制台應用程序。 該應用程序在其開發的系統上運行良好,但在部署到任何其他系統時無法運行。 顯示以下錯誤:

C:\Users\shubhamjain\source\repos\Collect\Collect\bin\Release\netcoreapp2.2\win-x64>Collect.exe

錯誤:未找到應用程序依賴項清單 (Collect.deps.json) 中指定的程序集:package:'Newtonsoft.Json',版本:'12.0.2' 路徑:'lib/netstandard1.3/Newtonsoft.Json.dll '

我已經嘗試過以下事情:

  1. 從 2.1 和 2.2 更改 .Net 核心版本
  2. 從 nuget 更改 Newtonsoft.Json 的版本
  3. 更新視覺工作室 2019

沒有任何效果,但是當我查看文件(路徑C:\Users\shubhamjain\source\repos\Collect\Collect\bin\Release\netcoreapp2.2\win-x64中的“Collect.runtimeconfig.dev.json”)並更改時使用已部署的系統用戶名的shubhamjain ,一切正常。

現在,我觀察到Newtonsoft.Json取決於文件( .runtimeconfig.dev.json ),為了使其正常工作,我必須更改此文件中的用戶名。

有沒有辦法自動解決這個問題?

Collect.runtimeconfig.dev.json

{
  "runtimeOptions": {
     "additionalProbingPaths": [
        "C:\\Users\\shubhamjain\\.dotnet\\store\\|arch|\\|tfm|",
        "C:\\Users\\shubhamjain\\.nuget\\packages",
        "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" ]
  }
}

您可以嘗試使用%username%參數配置您的json文件嗎? 我不確定是否可以以這種方式運行,但您可以在命令提示符中使用該參數來獲取登錄的用戶名。 您可以查看 鏈接以獲取更多詳細信息。

在這種情況下,您的Collect.runtimeconfig.dev.json將是:

{
   "runtimeOptions": {
      "additionalProbingPaths": [
         "C:\\Users\\%username%\\.dotnet\\store\\|arch|\\|tfm|",
         "C:\\Users\\%username%\\.nuget\\packages",
         "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" ]
   }
}

您還可以為不同的環境准備不同的配置文件。 也許這個 Microsoft Doc可能對此有所幫助。

暫無
暫無

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

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