Visual Studio 预构建 powershell 脚本以代码 9009 退出且构建失败
Visual Studio prebuild powershell script exiting with code 9009 and failing to build
在我的项目中,我设置了更新 *.cs 和 *.xaml 文件(包含在正在构建的项目中)的内容的预构建事件。
我使用 Set-Content
Powershell 命令。
当我在 Powershell 控制台中测试它时,一切正常。
但是当我在预构建事件中粘贴时,它会生成错误代码 9009 并阻止 VS 成功构建我的项目。
我已将构建输出详细程度设置为 Diagnostic
,但没有关于它的更多信息。
可能是什么问题?
我目前的猜测是 VS 锁定文件进行构建,因此 Powershell 命令无法修改它们。
I use Set-Content Powershell command for it. What could be the problem?
问题原因:
1.VS 将调用 cmd.exe
之类的东西来执行您在 Build Events
.
中键入的命令
这意味着您正在尝试 运行 Set-content
在 cmd.exe
中执行命令。
2.Like boxdog 表示,VS中的code9009
确实表示the command is not recognized
。
更具体地说,Set-content
是 PowerShell 命令,而不是 cmd.exe
识别的命令。(参见 #1,VS 调用 cmd.exe 运行 命令)。
所以问题出现了:Type a PowerShell command in build events => VS calls cmd.exe to execute it => cmd.exe can't recognize a PS command. and throw error=> VS output log displays error code9009.
建议:
你不能直接在构建事件中输入Set-content
到运行(设备到运行 Set-content
直接在CMD,它会导致错误)。
相反,我们可以在 cmd.exe
中调用 powershell
到 运行 PS 脚本或 PS 命令,您可以找到许多关于如何 运行 PS 来自在线CMD的脚本。参见 run PS command in cmd, run PS from CMD, How to run PS in CMD。不过更像是另外一个问题,这里就不多说了:)
总结:您可以选择创建一个新的 PS 脚本并将 Set-content
命令移入其中,然后在其中键入 powershell -file path\xx.ps1
或简单的 powershell - command
命令建立事件。然后 Error9009
就会消失。 (我相信 Error9009 会消失,但我已经看到太多关于其他错误代码的问题,其中大多数与路径问题有关,因此请注意脚本中定义的路径。)
在我的项目中,我设置了更新 *.cs 和 *.xaml 文件(包含在正在构建的项目中)的内容的预构建事件。
我使用 Set-Content
Powershell 命令。
当我在 Powershell 控制台中测试它时,一切正常。
但是当我在预构建事件中粘贴时,它会生成错误代码 9009 并阻止 VS 成功构建我的项目。
我已将构建输出详细程度设置为 Diagnostic
,但没有关于它的更多信息。
可能是什么问题?
我目前的猜测是 VS 锁定文件进行构建,因此 Powershell 命令无法修改它们。
I use Set-Content Powershell command for it. What could be the problem?
问题原因:
1.VS 将调用 cmd.exe
之类的东西来执行您在 Build Events
.
这意味着您正在尝试 运行 Set-content
在 cmd.exe
中执行命令。
2.Like boxdog 表示,VS中的code9009
确实表示the command is not recognized
。
更具体地说,Set-content
是 PowerShell 命令,而不是 cmd.exe
识别的命令。(参见 #1,VS 调用 cmd.exe 运行 命令)。
所以问题出现了:Type a PowerShell command in build events => VS calls cmd.exe to execute it => cmd.exe can't recognize a PS command. and throw error=> VS output log displays error code9009.
建议:
你不能直接在构建事件中输入Set-content
到运行(设备到运行 Set-content
直接在CMD,它会导致错误)。
相反,我们可以在 cmd.exe
中调用 powershell
到 运行 PS 脚本或 PS 命令,您可以找到许多关于如何 运行 PS 来自在线CMD的脚本。参见 run PS command in cmd, run PS from CMD, How to run PS in CMD。不过更像是另外一个问题,这里就不多说了:)
总结:您可以选择创建一个新的 PS 脚本并将 Set-content
命令移入其中,然后在其中键入 powershell -file path\xx.ps1
或简单的 powershell - command
命令建立事件。然后 Error9009
就会消失。 (我相信 Error9009 会消失,但我已经看到太多关于其他错误代码的问题,其中大多数与路径问题有关,因此请注意脚本中定义的路径。)