使用 Visual Studio 2015 Update 1,当在 Post-Build Event 中运行命令 AL.EXE 时,我正在 Visual C++ CLR 类库项目 (C++/CLI) 中试验一个问题(Visual Studio 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 命令的路径,因为 Visual Studio 2015 Update 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 C++ 的 CLR 类库并在 Post-build 事件中添加对 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 Studio 尝试运行命令 AL.EXE 但它崩溃返回 -1073741819。