2

之前,我有一個小程序,我寫的下載所有的Nu​​Get包的解決方案。我想設置一個預生成事件,每次構建時都會運行此程序。預生成事件運行在溶液中的任何項目建成

但我需要它的第一個項目開始建設之前運行。我可以看看目前正在建設的東西,並將其放在該項目的預建事件上,但這相當脆弱。任何時候我添加一個新的項目或更新項目之間的引用,我將不得不再次檢查「第一」建設項目仍然是第一個。

所以,我真正需要的是一個辦法做到這一點才真正開始的建築物前。我聽說過Visual Studio宏。但是那些東西並沒有被檢入,所以我寧願不使用這些(但如果這是我唯一的選擇,我會使用它們)。

回答

0

我打電話的NuGet從預生成事件安裝使用的NuGet包的任何項目。它足夠聰明,只需下載尚未下載的軟件包。

1

你可以試試這個:http://sedodream.com/2010/10/22/MSBuildExtendingTheSolutionBuild.aspx

遺憾的是它只能從通過的MSBuild從命令行調用。似乎是一個設計缺陷,行爲是不同的,這些事件不通過IDE可用。

你也可以修改你的基礎的MSBuild任務,包括基於特定的標誌/文件存在/解決方案名稱的動作,但這是一切邪惡的。

否則,你幾乎停留在每個項目中的預生成。