Asp.net-Mvc

通過 Gitignore 遞歸包含 Nuget DLL

  • August 15, 2017

我正在將 GIT 與一個新的 ASP.NET MVC 項目一起使用。我的 gitignore 文件中有一行忽略 dll

*.dll

我想按照以下內容添加一些內容,以在我的 NUGET 封包件夾中包含(即不要忽略)DLL

 !/packages/*.dll

我遇到的問題是,並非所有 nuget 包都是平等創建的,並且根據所討論的包,DLL 可能嵌套在路徑層次結構中的任意數量的級別。看來我只需要一個遞歸解決方案:

!/packages/**/*.dll

!/packages/**/*

我還沒有找到可以通過 mysysgit(或任何 Windows 發行版 git)工作的解決方案。

有誰知道使這項工作的方法???

保持最高水平gitignore,保持最高水平*.dll

在包目錄中創建另一個.gitignore文件並將其放入!*.dll

另一個要考慮的選項是不在儲存庫中包含 NuGet dll,而是僅在第一次建構項目時下載它們。這就是我們對所有 NuGet 依賴項所做的事情。

更新

Nuget 現在可以處理此問題,而無需手動創建您自己的建構事件。請參閱此頁面上的詳細資訊:http: //docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


原答案:

我們將 NuGet.exe 應用程序放在解決方案下的工具文件夾中,然後將以下內容添加到我們的項目預建構事件中。

"$(SolutionDir)Tools\NuGet.exe" install "$(ProjectDir)packages.config" -o "$(SolutionDir)Packages"

我們第一次建構應用程序時,它將下載所有依賴項,但在後續建構中,NuGet 足夠聰明,可以看到它們已經以正確的版本存在並跳過它們。

引用自:https://stackoverflow.com/questions/7374591