簡體   English   中英

通過Gitignore遞歸地包含Nuget DLL

[英]Recursively include Nuget DLLs via Gitignore

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

*.dll

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

  !/packages/*.dll

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

!/packages/**/*.dll

!/packages/**/*

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

有沒有人知道如何使這項工作?

保留頂級gitignore ,保留*.dll

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

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

UPDATE

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


原答案:

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

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

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

暫無
暫無

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

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