这个错误消息是什么意思?我能做些什么来纠正这个问题?

AssemblyInfo.cs退出,代码为9009


这个问题可能是在Visual Studio中的. net解决方案的构建后步骤中发生的。


当前回答

至少在Visual Studio Ultimate 2013, Version 12.0.30723.00 Update 3中,不能用换行符分隔if/else语句:

工作原理:

if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server)

不工作:

if '$(BuildingInsideVisualStudio)' == 'true' (echo local) 
else (echo server)

其他回答

我的错误是

命令“iscc /DConfigurationName=Debug”C:\Projects\Blahblahblah\setup。Iss“”退出,代码为9009。

9009表示文件未找到,但实际上无法找到命令的“iscc”部分。

我通过添加“;C:\Program Files\Inno Setup 5 (x86)\”到系统环境变量“path”来修复它

Tfa的回答被否决了,但实际上会导致这个问题。 多亏了hanzolo,我在输出窗口中找到了以下内容:

3>'gulp' is not recognized as an internal or external command,
3>operable program or batch file.
3>D:\dev\<filepath>\Web.csproj(4,5): error MSB3073: The command "gulp clean" exited with code 9009.

在运行npm install -g gulp后,我不再得到这个错误。如果在Visual Studio中出现此错误,请检查输出窗口并查看问题是否是未设置的环境变量。

当您缺少使用Microsoft Visual Studio x86工具的一些环境设置时,就会发生这种情况。 因此,尝试在构建后的步骤中添加作为第一个命令:

使用Visual Studio 2010:

call "$(DevEnvDir)..\Tools\vsvars32.bat"

正如@FlorianKoch在评论中提到的,对于VS 2017的使用:

call "$(DevEnvDir)..\Tools\VsDevCmd.bat"

它应该放在任何其他命令之前。 它将为使用Microsoft Visual Studio x86工具设置环境。

另外,确保在项目的构建后事件编辑窗口中没有换行符。有时,当xcopy命令是多行时,从web上复制它并粘贴到VS中会导致问题。

实际上,我注意到由于某些原因,%windir%环境变量有时会被擦除。对我有用的是重新设置windir环境变量为c:\windows,重新启动VS,就是这样。这样可以避免修改解决方案文件。