如何在 powershell 中调用 devenv.com? [复制]

Posted

技术标签:

【中文标题】如何在 powershell 中调用 devenv.com? [复制]【英文标题】:How to call devenv.com in powershell? [duplicate] 【发布时间】:2016-11-25 14:41:09 【问题描述】:

我只想运行以下两行。

cd SomeDirectory
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com 
   Source\MySolution.sln /build Release /project Source\My\Setup\Project.vdproj

如果我将所有内容都用引号括起来,除了打印到控制台的字符串之外似乎什么都没有发生。

【问题讨论】:

【参考方案1】:

在引用程序的路径来运行它时,您需要在前面加上&

& "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com" Source\MySolution.sln /build Release /project Source\My\Setup\Project.vdproj"

原因是PowerShell有两种不同的解析模式:命令模式和表达式模式。但是引用的字符串会切换到表达式模式,因此您明确需要调用运算符&

另一件事:您可能必须为参数使用完整路径,因为 PowerShell 具有不同的当前目录概念,本机程序不共享。

【讨论】:

如何在 Source\MySolution.sln 中包含带有 "" 的完整路径? @Yiping:如有必要,您可以用引号括起来。请注意,PowerShell 仍将根据自己的规则解析参数并将参数引用到外部程序。使用--%(参见Get-Help about_parsing)会有所帮助。

以上是关于如何在 powershell 中调用 devenv.com? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 PowerShell 中,如何在文件中定义函数并从 PowerShell 命令行调用它?

如何在 powershell 中使用变量调用命令?

如何在 PowerShell 中调用带有输出参数的方法?

如何在调用其他 Cmdlet 的 Cmdlet 中支持 PowerShell 的 -WhatIf 和 -Confirm 参数?

如何在 Devenv 中指定发布版本?

如何在 devenv 任务中指定多个构建类型,CruiseControl.net