PowerShell模块,用于在NuGet Install.ps1 / Uninstall.ps1脚本中处理Visual Studio对象模型

时间:2013-01-21 13:46:53

标签: visual-studio-2010 powershell nuget

我正在尝试创建一个包含托管(程序集)和非托管(本机DLL)二进制文件的NuGet包,并且还支持多个平台(x86,x64)。

为了更好地理解如何正确处理,我看了几个有相似要求的软件包,发布在官方nuget feed上。其中一个是Microsoft.SQLServer.Compact

查看 Install.ps1 Uninstall.ps1 PowerShell脚本以及 VS.psm1 PowerShell模块中的操作非常有用

VS.psm1模块包含一些函数的定义,允许从包安装脚本中控制Visual Studio(特别是通过$ dte对象)。这些函数基于Visual Studio Object Model,我还不知道,而且(在我看来)并没有很好地记录。

我想知道您是否知道PowerShell模块可以从NuGet PowerShell脚本轻松处理Visual Studio对象模型。或者,任何指向书籍,博客文章,文章......的指针都会非常受欢迎,这些指针展示了如何从PowerShell正确使用该对象模型的一些示例。我在网上找到的唯一例子通常说明了非常基本的功能。

另外,如果您了解其他可以用作托管和非托管库的NuGet包,我可以将其作为示例使用,那就太好了。

我当然可以从我在上面提到的文件中看到的内容开始并滚动我自己的模块,但如果已有可用的东西,我宁愿专注于我自己的包。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

看看StudioShell。它是一个将PowerShell自动化引入VS.NET的系统,可作为安装程序使用,也可作为NuGet程序包使用,以实现您描述的那种场景。 PluralSight课程“Everyday PowerShell for Developers”课程介绍了系统,项目网站上有一些示例。

答案 1 :(得分:0)

这可能与您的帖子没有直接关系。我认为软件包管理器控制台应该称为PowerShell控制台。它使您可以完全访问DTE。

我有一个简单的例子,使用它,纯PowerShell,没有t4或扩展,将几个文件添加到Visual Studio以自动添加命令模式类。

http://github.com/jefflomax/vs-package-manager-console-cmdlets

我们当然可以使用更完整的PowerShell cmdlet库来处理此环境中的简单Visual Studio任务。