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

AssemblyInfo.cs退出,代码为9009


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


当前回答

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

其他回答

您是否尝试给出在构建前或构建后事件命令中运行的命令的完整路径?

由于Visual Studio 2008中的xcopy post-build事件命令,我得到了9009错误。

命令“xcopy.exe /Y C:\projectpath\project. exe”config C:\compilepath\"退出代码为9009。

但我的情况是间歇性的。也就是说,错误消息一直持续到计算机重新启动,并在计算机重新启动后消失。在一些我尚未发现的远程相关问题之后,它又回来了。

然而,在我的情况下,提供命令的完整路径解决了问题:

c:\windows\system32\xcopy.exe /Y C:\projectpath\project.config C:\compilepath\ 

而不仅仅是:

xcopy.exe /Y C:\projectpath\project.config C:\compilepath\

如果我没有完整的路径,它会在重新启动后运行一段时间,然后停止。

另外,正如本文评论中提到的,如果全路径中有空格,则需要在命令周围加上引号。如。

"C:\The folder with spaces\ABCDEF\xcopy.exe" /Y C:\projectpath\project.config C:\compilepath\

注意,这个关于空格的例子没有经过测试。

对我来说,磁盘空间很低,无法写入的文件预计以后会出现。其他答案提到了丢失的文件(或命名错误/不恰当地引用了文件名称)——但根本原因是磁盘空间不足。

当找不到signtool.exe本身时,我实际上得到了这个错误消息。为了解决这个问题,我将文件夹路径添加到path环境变量中,并重新启动Visual Studio。

至少在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)

和其他答案一样,在我的情况下,这是因为丢失的文件。要知道丢失了什么文件,你可以转到输出窗口,它会直接告诉你丢失了什么文件。

在Visual Studio中打开输出窗口:

Ctrl + Alt + O 查看>输出