簡體   English   中英

如何在.NET Core中重定向探測程序集?

[英]How to redirect probing for assemblies in .NET Core?

我有一個位於App文件夾中的ASP.NET Core MVC應用App 而且我沒有使用Kestrel或IIS Express來運行它。 相反,我們有一個基礎架構直接在IIS中托管該App文件夾,並做更多的事情使我們的開發環境與我們的生產環境(DevOps)非常相似。

事情很好。 當我構建時,輸出進入bin\\Debug\\netcoreapp2.0文件夾,我們有一個Web.config文件,我們在其中配置了AspNetCoreModule以從該路徑加載條目DLL。

現在我想使用ClosedXML ,它依賴於System.Drawing.Common庫。

當我構建並測試我的應用程序時,我有這個錯誤:

未找到應用程序依賴項清單(App.deps.json)中指定的程序集:
包:'System.Drawing.Common',版本:'4.5.0-preview1-25914-04'
路徑:'runtimes / win / lib / netcoreapp2.0 / System.Drawing.Common.dll'

關鍵是,我有一個bin\\Debug\\netcoreapp2.0文件夾來托管應用程序,我可以確認已經復制了System.Drawing.Common 但似乎MSBuild沒有將它復制到預期的bin\\Debug\\netcoreapp2.0\\runtimes\\win\\lib\\netcoreapp2.0文件夾中。

我可以將請求的庫復制到給定的文件夾,即runtime/win/lib/netcoreapp2.0 ,該應用程序將正常工作。

我可以為App.runtimeconfig.json添加額外的探測路徑。

我可以將App.deps.json此庫的搜索路徑更改為同一目錄。

但這些都是手動完成的。

如何使構建過程將依賴項復制到正確的位置?

您可以使用“ Publish命令來創建輸出目錄。 要么從命令行使用dotnet publish ,要么在Visual Studio的解決方案資源管理器中,右鍵單擊您的項目 - >發布。

當您Build應用程序時,來自NuGet包的依賴程序集將保留在NuGet緩存文件夾中。 當您使用F5 / dotnet運行您的應用程序時,它們將從NuGet緩存文件夾中加載。 但是,如果您希望應用程序文件夾准備好在VS / dotnet運行之外的其他環境中運行,那么您應該發布您的應用程序。

暫無
暫無

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

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