2012-07-08 49 views
3

Nuget.exe僅支持在文件系統/配置級別管理軟件包。 powershell命令命令更新.proj文件的魔力。這就是說,我需要能夠使用Visual Studio(自動化)以外的NuGet包的最新版本更新csproj文件。使用nuget更新軟件包管理器控制檯以外的項目文件

基本上,我如何在我自己的外部PowerShell腳本中使用Install-Package(或任何其他方法)?

UPDATE:

我想補充VS之外的項目引用,原因如下能力。

我的公司有很多共享庫,在某些情況下相互依賴。我正在使用TFS Nugetter從TFS構建和發佈nuget包。我希望確保開發人員不能排隊構建(包),除非項目可以在所有新版本上構建和運行。這確保了所有較新版本的庫可以與其所有新版本的依賴關係一起工作。如果構建失敗,那麼你需要在VS中更新你的nuget引用並修復編譯器錯誤/單元測試。

我一直在看NuGet源代碼,我想我找到了一種簡單的方法來重用NuGet源來修改VS以外的proj文件(有點兒)。

System.Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true); 
var dte = (DTE)System.Activator.CreateInstance(t, true); 
dte.Solution.Open( 
    @"C:\Users\paul.knopf\Documents\Visual Studio 2010\Projects\SLNMemory\SLNMemory.sln"); 

基本上,打開一個內存版本的visual studio,運行nuget命令,然後保存。

在構建步驟中,在GetWorkspace之後,我想運行此內存,並將所有nuget引用更新爲最新版本。

您認爲如何?這肯定會很慢,但我們會在相同的代碼基礎上,並具有我們需要的所有功能。

+0

閱讀此:http://blog.davidebbo.com/2011/05/thoughts-on-installing-and-updating.html – 2012-07-09 05:33:08

+0

我給博客文章添加了評論。請看看它。 – 2012-07-09 13:47:22

回答

1

正如你所描述的那樣自動化Visual Studio當然是一種可能性。

我看着另一種方式是使用SharpDevelop來install NuGet packages outside of Visual Studio。 NuGet PowerShell cmdlet已被修改爲接受解決方案,您可以從命令行自動安裝,包括在NuGet軟件包中使用PowerShell腳本。該代碼尚未更新,因此它的目標是舊版本的NuGet,但可以更新。這再次類似於您的解決方案和相當重量級的解決方案。

相關問題