4

我想在 Visual Studio 的构建事件中使用 powershell 脚本,并且我需要使用在 Visual Studio 本身中定义的一些宏。

这是我的 powershell 脚本示例:

"Updating version for Project:"
"$ProjectDir"

然后在项目的预构建事件中,我以这种方式调用它:

powershell.exe -file "$(SolutionDir)Resources\UpdateVersion.ps1" -path $(SolutionDir)

构建项目时,我正确调用了脚本,但包含项目路径的字符串为空。

有没有办法将所有 Visual Studio 宏传递给 powershell 脚本,而不将它们显式地作为脚本参数传递(我必须使用很多宏,这会很乏味)?

4

1 回答 1

0

一个迟到的答案,但我希望它可以帮助某人。

在您的 Pre-Build 事件中,您使用“-path”参数传递 $(SolutionDir),但在 PowerShell 脚本中,您从不使用“-path”参数。看起来您试图将其引用为“$ProjectDir”。

解释如何在 PowerShell 中使用命名参数超出了这个问题的范围,所以我将切换到使用位置参数。

将您的 PowerShell 脚本更改为:

param($solution, $project)
Write-Host $solution
Write-Host $project

然后,将您的构建事件更改为:

powershell.exe -file "$(SolutionDir)Resources\UpdateVersion.ps1" $(SolutionDir) $(ProjectDir)
于 2022-01-29T13:28:51.360 回答