生成后事件命令时出错

时间:2012-06-14 08:38:19

标签: .net visual-studio post-build-event build-events

我在Windows 7上使用Visual Studio 2010编译我的C#代码时遇到错误。

我有这些构建事件(构建后事件命令行):

if not "$(ConfigurationName)"=="Release" goto :finish 
"$(TargetDir)mt.exe" -manifest "$(ProjectDir)$(TargetName).exe.manifest" –outputresource:"$(TargetDir)$(TargetFileName)";#1
"$(ProjectDir)ILMerge.exe" /out:"$(TargetDir)Merged\Software.exe" "$(TargetPath)" "$(ProjectDir)bin\x86\Dlls\mwc.dll" "$(ProjectDir)bin\x86\Dlls\Interop.Access.dll" "$(ProjectDir)bin\x86\Dlls\Interop.DAO.dll"
:finish

如果我删除:$(ProjectDir)bin\x86\Dlls\Interop.Access.dll一切都很好。使用此代码,如果我重建代码,我会收到此错误:

  

退出代码1.

我认为它没有找到dll文件,但它就在那里。我已经多次检查了......

我不知道如何解决这个问题。

@edit:对不起,我犯了一个错误,现在这是正确的代码......无论如何都无法正常工作

2 个答案:

答案 0 :(得分:1)

您错过了$(ProjectDir)bin\x86\Dlls\Interop.Access.dll

末尾的结束语
"$(ProjectDir)ILMerge.exe" /out:"$(TargetDir)Merged\Software.exe" "$(TargetPath)" "$(ProjectDir)bin\x86\Dlls\mwc.dll" "$(ProjectDir)bin\x86\Dlls\Interop.Access.dll "$(ProjectDir)bin\x86\Dlls\Interop.DAO.dll"

应该......

"$(ProjectDir)ILMerge.exe" /out:"$(TargetDir)Merged\Software.exe" "$(TargetPath)" "$(ProjectDir)bin\x86\Dlls\mwc.dll" "$(ProjectDir)bin\x86\Dlls\Interop.Access.dll" "$(ProjectDir)bin\x86\Dlls\Interop.DAO.dll"

答案 1 :(得分:1)

没有简单的方法来调试post-build脚本。 我个人使用的一种可能的方法是在控制台中单独执行suspicios line,并希望得到更详细的解释。

因此,尝试使用您在后期构建事件中使用的命令行参数来执行ILMerge,并查看会发生什么。

祝你好运。