繁体   English   中英

Visual Studio 2012可以使用cmdlet自动化吗?

[英]Can Visual Studio 2012 be automated using cmdlets?

如果可以使用PowerShell完成,我很好奇。

就个人而言,我想要实现自动化:将现有的本地IIS网站添加到解决方案中

我看到一个人试图用COM做这件事,但显然没有任何运气。 使用Powershell自动化Visual Studio 2012,做错了吗?

您可以使用PowerShell自动化Visual Studio 2012。 程序包管理器控制台实际上是PowerShell主机。 从包管理器控制台,变量$ dte是用于自动化大多数Visual Studio的COM自动化对象。

有关更多详细信息和一些示例,请参阅http://www.wintellect.com/blogs/jrobbins/using-nuget-powershell-to-replace-missing-macros-in-dev-11

我意识到这是一个古老的问题,但对于那些仍对此感兴趣的人......

实际上,编写自己的cmdlet以获取DTE对象的COM绑定以在PowerShell脚本中使用时,实际上没有太多代码。 有关正在运行的Get-DTE ... cmdlet源代码的相关问题,请参阅我的答案 一旦你有DTE绑定,它几乎与你在别处可能看到的所有例子相同。

例:

PS C:\> Import-Module .\GetDTECmdlet.dll;
PS C:\> $dte = Get-DTE | Select-Object -First 1;
PS C:\> $dte = Get-DTE -ProcID 8547 | Select-Object -First 1;
PS C:\> $dte = Get-DTE -FromAncestorProcs | Select-Object -First 1;
PS C:\> $dte.ExecuteCommand('Help.About');
PS C:\> [Runtime.InteropServices.Marshal]::ReleaseComObject($dte); | Out-Null;


cmdlet的源代码可能有点过分,除非您想要像我一样从前/后构建步骤访问DTE。 但是,它应该足以让你开始。

而且,如果您真的想避免深入构建自己的cmdlet,那么您可以在同一个问题上看到这个答案 ,该问题实际上是在PowerShell Add-Type -TypeDefinition @"..."@命令中包含cmdlet中的C#代码您根本不需要GetDTECmdlet.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM