![](/img/trans.png)
[英]Clarifying `.dll.refresh` files, source control, and build of an asp.net web site project
[英]Using NuGet with *.dll.refresh files in ASP.NET “Web Site” projects with Web Deployment Projects
如果您有一個ASP.NET網站項目類型(沒有適當的.csproj或.vpproj項目文件,而這只是一個松散文件的文件夾),那么當您使用NuGet添加一個程序包時,它將生成一個* .dll Bin目錄中的.refresh文件引用父程序包文件夾中的程序包dll。
例如,如果從程序包管理器控制台執行“ install-package elmah”,則Elmah將放置在項目的解決方案目錄的packages文件夾中,文件Elmah.dll.refresh將放置在項目的Bin文件夾中。
當我在本地生成項目時,Visual Studio會自動提取刷新文件引用的DLL。 該站點和Elmah正常運行。 我沒有將位於項目Bin目錄中的Elmah.dll文件簽入到源代碼管理中(僅簽入了刷新文件和packages文件夾)。
但是,我正在使用Web部署項目來預編譯站點,並進行web.config替代部署。 以這種方式構建解決方案時,Elmah.dll不會自動拉入網站項目的Bin目錄,並且由於缺少DLL而無法正確運行該網站。
NuGet如何在這種情況下使用? 我是否想在Bin目錄中簽入Elmah.dll?
這是基於上述GC。解決方案的。 添加一個類庫(csproj),並在網站項目中引用該類庫。 將nuget包添加到類庫。 在類庫中, 實際上在某些類文件中引用nuget包 。 也許創建一個一次性實例或其他東西。 您可以使用包中包含的任何類。 這將強制將.dll復制到網站項目中的Bin目錄。
-編輯-請參閱上面的此解決方案的更新版本。
只需將類庫項目添加到解決方案中,然后將對類庫項目的引用添加到您的網站。
然后,將nuget添加到類庫中,而不是網站項目中。
當您的網站建立時,它依次提取所有類庫的依賴項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.