我在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:对不起,我犯了一个错误,现在这是正确的代码......无论如何都无法正常工作
答案 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
,并查看会发生什么。