0

我最近成功地將我們所有的項目切換到自動NuGet恢復。爲此,我跟着this guide。一切運作良好,我能夠刪除我的/packages文件夾,並恢復到我心中的內容。NuGet自動恢復和安裝NuGets

該指南中的一個步驟說要編輯您的.csproj文件並刪除EnsureNuGetPackageBuildImports相關元素。

我現在遇到的問題是,在進入和降級我的一個項目庫之後,NuGet似乎自動將EnsureNuGetPackageBuildImports相關元素添加回我的.csproj文件中。

是否有其他一些設置我應該改變,以防止NuGet做到這一點?每次我進行NuGet相關更改時,我寧願不必編輯我的.csproj文件。

回答

1

是否有其他一些設置我應該改變,以防止NuGet做到這一點?

我害怕答案不是如果你去和降級你的項目庫之一。

目標「EnsureNuGetPackageBuildImports」用於確保導入的.props或.targets文件確實以舊方式「啓用軟件包還原」導入。自從NuGet 2.5以來,NuGet已經支持NuGet MSBuild支持。

自從Nuget 2.7+以來,微軟已經放棄了對VS2015中'啓用NuGet軟件包還原'的支持,您需要做一些手動更改以遷移舊解決方案或將功能添加到新解決方案。在Nuget 2.7+中,Nuget Automatic Package Restore已經改變。不幸的是,它看起來像一個非向後兼容的變化。我們有一些2.7以上的開發者,現在需要升級到2.7+以上。在這種情況下,會的NuGet自動添加EnsureNuGetPackageBuildImports相關元素回到你的.csproj文件,當您進入和降級的項目庫之一。

要解決這個問題,我們的建議是不要混用自動修復包「老」和新方法(刪除文件,當您使用自動包裝還原)。

此外,如果要在和降級的項目之一庫是不可避免的,有一個PS腳本可以幫你刪除它更方便: DisableNuGetPackageRestore.ps1