Visual Studio 2008的NuGet支持

[原文发表地址]NuGet Support for Visual Studio 2008

[原文发表时间]2011-08-10 15:05

好吧,不完全是。标题更好点的话应该是“如何用外部工具和Prayer组装起Visual Studio 2008的NuGet支持”。关键在于,许多使用Visual Studio 2008的同仁们都希望有NuGet的支持。我全力探索这个领域,发现有很多方法可以实现,有些很困难,而有些则相对简单些。想法应该是用最少的精力来完成最多的事情。如果社区中有同仁认为这个很重要,并愿意去实现它的话,我会非常高兴的。当然,最简单的莫过于使用2010,因为它还支持.NET 2.0,3.0,3.5和4,但是不是每个人都能升级的。

macgyvertool

有些人可以:

l 将现有的NuGet包引用对话框反向至2008,使用那个版本的本地扩展(不是VsiX)

l 为nuget.exe命令行创建MEF(管理扩展性框架)插件,以在vbproj或者csproj中更新相关内容

l 使用PowerShell脚本,批处理文件,使最基础的东西运行(获取包,更新相关内容)。

² 也许可以写个垫片来使DTE自动运行

但那只是一种可能性和猜测。我们来讨论看看MacGyver的解决方案。

运行Visual Studio 2008,找到 工具|外部工具。

External Tools in Visual Studio

用下列值生成新的工具:

l 标题:NuGet安装

l 命令(我假设这存在于路径中):nuget.exe

l 参数:安装 your.package.name-excludeversion-outputDirectory.\Packages

l 初始目录:$(SolutionDir)

l 使用输出窗口:Checked

l 参数提示:Checked

下一步,在工具栏区域右击,创建一个新的工具条命名为NuGet。从命令中,拉出正确的 工具|外部工具 按钮。右击,用作设计:

Creating a new Toolbar with "NuGet Install" on it

现在,当你点击安装包时,你可以更改your.package.name,随你喜欢,然后点击确定。注意下面操控窗口的输出。

NuGet in Visual Studio 2008

此时,由于我们只是集成了命令行,所以你不能得到自动添加的引用。那么包又在哪里呢?好吧,它们在这儿,在Packages目录中。要不要添加引用取决于你,只要你觉得适合就好(我在这儿再次提醒你参阅上述的列表)。

The NuGet packages

如果你觉得很新奇,你还可以在工具栏中添加一些宏和链接,让你方便前往NuGet网站去搜索。这里提供一个Visual Studio 2008宏,将启动默认web浏览器并带你前往https://www.nuget.org/List/Packages

  1: Public Module NuGet
  2: Sub LaunchNuGetSite()
  3: Dim p As New System.Diagnostics.Process()
  4: p.Start("https://www.nuget.org/List/Packages")
  5: End Sub
  6: End Module

然后为那些外加的按钮做工具栏按钮,就像这个引导至NuGet站点搜索的按钮一样。

clip_image005

亲爱的读者们,你们是怎么想的呢?