Nuget.exe只支持在文件系统/配置级别管理包。powershell命令神奇地更新.proj文件。
尽管如此,我需要使用visual (自动)之外的NuGet包的最新版本更新csproj文件的能力。
基本上,如何在我自己的外部powershell脚本中使用Install(或任何其他方法)?
更新:
出于以下原因,我希望能够在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引用更新到最新版本。
你认为如何?这肯定会很慢,但我们将在相同的代码基础上,并拥有我们所需的所有功能。
发布于 2012-07-09 14:23:32
正如您所描述的,自动化Visual当然是一种可能性。
我看到的另一种方式是使用SharpDevelop来实现在Visual之外安装NuGet包。对NuGet PowerShell cmdlet进行了修改以接受解决方案,您可以从命令行自动安装,包括在NuGet包中使用PowerShell脚本。代码尚未更新,因此它针对的是NuGet的旧版本,但可以更新。同样,这类似于您的解决方案和相当重的解决方案。
https://stackoverflow.com/questions/11386672
复制相似问题