[英]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.