簡體   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