Visual Studio的构建后事件返回错误MSB3073。

3
我在使用Visual Studio 2015进行一些编译后操作时,遇到了以下错误:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(4291,5): error MSB3073: The command 'if 'Release'=='Release' (...

...

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(4291,5): error MSB3073: )' exited with code 9009. -- FAILED"

请问出现了什么问题?我尝试了以下的“编译后”事件脚本:
<PostBuildEvent>if "$(ConfigurationName)"=="Release" (
      ...
)</PostBuildEvent>

我也尝试了以下内容(不带引号):
<PostBuildEvent>if $(ConfigurationName)==Release (
      ...
)</PostBuildEvent>

一个重要的注意事项:该问题仅在同一解决方案中的少数项目中发生,而其他项目正常工作。目前我还没有注意到代码上的任何区别。


在下面添加一行代码会遇到错误,或者在发布条件内编写任何代码,它会抛出错误吗?<PostBuildEvent>if $(ConfigurationName)==Release ( ... )</PostBuildEvent> - Vinoth Rajendran
嗨Vinoth,我刚刚执行了上面的操作。结果相同,以下是输出:
C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets(4714,5):error MSB3073:命令“if Release == Release()”退出代码255。
- Kunal Chowdhury
您正在使用错误的错误代码提出问题。当自定义构建步骤引发错误时,将返回 MSB3073 错误代码,而您应该查看的是代码 9009。请参见此处 https://dev59.com/bnM_5IYBdhLWcg3wgjW2。错误来自于您没有在三个点中显示的内容。另外,是带引号的语法是正确的,另一个是错误的。 - Biepbot Von Stirling
1个回答

1

解决错误MSB3073的方法:

首先将解决方案模式更改为“Min-Release-dependency”,然后在解决方案资源管理器中右键单击项目

属性 ==> 自定义构建设置 ==> 常规 ==> 命令行:选择从父级继承,然后单击应用和确定,然后重新构建解决方案。

这样就可以无错误地构建了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接