使用VisualStudio2015Update 1,我正在测试在构建后事件中运行命令C++ AL.EXE时,Visual类库项目(C++/CLI)中的一个问题(在Visual 2015中没有发生):AL.EXE应用程序崩溃,系统返回错误代码-1073741819 (0xC0000005)。
在这里,构建后事件的内容:
sn -Rca "$(SolutionDir)bin\$(Configuration)\$(Platform)\$(TargetName)$(TargetExt)" dwo
Resgen "$(ProjectDir)Recursos.es-ES.resx" "$(IntDir)$(ProjectName).Recursos.es-ES.resources"
Al.exe /t:lib /embed:"$(IntDir)$(ProjectName).Recursos.es-ES.resources",Recursos.es-ES.resources /version:15.0.0.0 /culture:es-ES /out:"$(OutDir)es-ES\$(TargetName).resources.dll" /keyname:dwo这里是事件查看器的片段,每次我从构建后事件(编译我的项目)运行它时,都会显示AL.exe应用程序的错误。

如果我从控制台执行命令行,您可以看到它是正确的:

所以我确定问题不是因为命令行。
此外,我还试图指定另一个AL.EXE命令的路径,因为VisualStudio2015Update 1使用了路径:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools所以我试着
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools但还是不起作用。
您可以重现问题,创建新的Visual ++的CLR类库,并在生成后事件中添加对AL.exe的简单调用。
你知道如何解决这个问题吗?
编辑:我还试着用这样的AfterBuild目标来完成这个任务:
<Target Name="AfterBuild">
<Exec Command="Al.exe /t:lib /embed:"$(IntDir)$(ProjectName).Recursos.es-ES.resources",Recursos.es-ES.resources /version:15.0.0.0 /culture:es-ES /out:"$(OutDir)es-ES\$(TargetName).resources.dll" /keyname:dwo"/>
</Target>结果是一样的: Visual尝试运行命令AL.EXE,但它会崩溃,返回-1073741819。
发布于 2015-12-10 06:51:07
感谢JaredPar所做的工作
http://blogs.msdn.com/b/bharry/archive/2015/11/30/vs-2015-update-1-and-tfs-2015-update-1-are-available.aspx?CommentPosted=true#10659560
在nmake文件或post生成事件中调用al.exe之前添加以下行 chcp 437 这将在运行al.exe之前将控制台代码页重置为已知值。
发布于 2017-07-25 08:56:11
在构建我的ASP.NET项目时,我遇到了同样的问题。

Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3441,5):文件(x86)\Microsoft Visual 1>C:\Program error MSB6006:"al.exe“与代码1073741819一起退出。
在您更改默认控制台窗口属性中的默认代码页后,就会发生这种情况:


只要将它恢复到437,问题就解决了。
https://stackoverflow.com/questions/34051040
复制相似问题