2012-02-14 129 views
7

我在我的解決方案中啓用了恢復軟件包選項,因此當我將代碼上傳到CI服務器時,它更新了需要正確構建的所有軟件包,而且效果很好。現在的問題是,在我的本地機器上,構建需要很長時間才能啓動,因爲它是「更新軟件包」。有沒有辦法在發佈版本中啓用恢復包?僅在調試版本中阻止NuGet恢復軟件包

我試着用falsetrue移動<RestorePackage>財產在.csproj的文件,以釋放/調試節,但的NuGet更新屬性時打開的NuGet控制檯和重置既true;也嘗試只在發佈部分包括財產,但隨後NuGet將其添加到全球部分...所以我沒有運氣,使它保持我想要的樣子...

任何意見?

回答

15

你可能設法通過現在回答這個,但如果不是那麼這些步驟需要遵循

身在何方您的解決方案文件是Windows中應該有一個.nuget命名的文件夾。重命名或刪除此文件夾。

現在打開.csproj的每一個或記事本.vbproj文件或任何文本編輯器並刪除這些行

<RestorePackages>true</RestorePackages> 
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> 

的重要組成部分,刪除/重命名文件夾.nuget。這現在應該完全禁用軟件包恢復。

編輯:選擇性地禁用包DEBUG恢復構建編輯Nuget.settings.targets文件和修改下面一行

<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages> 

<RestorePackages Condition="$(RestorePackages) == '' AND '$(Configuration)' == 'Debug'">false</RestorePackages> 

的Nuget.settings.targets文件是在應該與解決方案文件位於同一文件夾中的.nuget文件夾下。

+0

嗯,我不想完全刪除軟件包還原,我只是想禁用它的調試版本....我不希望它運行時,我在我的本地/ dev計算機,但我希望它可以獲取軟件包,以及當我將其上傳到CI服務器時。 – Jaime 2012-03-13 20:18:39

+0

感謝您的編輯建議。 – Jaime 2012-04-13 22:02:03

+0

我認爲它應該是最後一個例子中的OR,而不是AND - 即$(RestorePackages)==''OR $(Configuration)=='D​​ebug'。 – 2013-10-17 07:29:38