簡體   English   中英

使用nuget更新程序包管理器控制台之外的項目文件

[英]Using nuget to update project files outside of Package Manager Console

Nuget.exe僅支持在文件系統/配置級別管理包。 powershell命令用於命令更新.proj文件的魔力。

話雖如此,我需要能夠使用Visual Studio(自動化)之外的最新版NuGet包更新csproj文件。

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

更新:

我希望能夠在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之后,我想在內存中運行此vs以更新所有對最新版本的nuget引用。

你怎么看? 它肯定會很慢,但我們將使用相同的代碼庫並擁有我們需要的所有功能。

正如您所描述的那樣自動化Visual Studio肯定是可能的。

我看到的另一種方法是使用SharpDevelop 在Visual Studio之外安裝NuGet包 修改了NuGet PowerShell cmdlet以接受解決方案,您可以從命令行自動執行安裝,包括在NuGet包中使用PowerShell腳本。 代碼尚未更新,因此它的目標是舊版本的NuGet,但可以更新。 這又類似於您的解決方案和相當重量級的解決方案。

暫無
暫無

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

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