Dotfuscator构建后事件已退出代码1

时间:2012-06-22 22:36:23

标签: .net build build-automation obfuscation dotfuscator

我正在尝试在TFS的构建过程中自动对项目进行dotfuscate。

我在项目属性下创建了一个“Post-Build Event”,如下所示:

  

“C:\ Program Files(x86)\ PreEmptive Solutions \ Dotfuscator Professional   版本4.9 \ dotfuscator.exe“/ in:”$(TargetPath)“   / out:“$(TargetDir)混淆\”/荣誉:on / strip:on / prune:off   / rename:off / suppress:on /mapout:"$(TargetFileName).xml"/ debug:pdb   xcopy / S / R / Y“$(TargetDir)混淆\ $(TargetFileName)”   “$(TARGETDIR)”

当此事件开始时,我收到以下错误:

  

“C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets   (3717):命令“”C:\ Program Files(x86)\ PreEmptive   解决方案\ Dotfuscator Professional Edition 4.9 \ dotfuscator.exe“   / in:“C:\ Builds \ 5 \ BIMS \ Sandbox Branch Private Test Manual   Build \ Binaries \ ProcessBookmarks.exe“/ out:”C:\ Builds \ 5 \ BIMS \ Sandbox   分支私有测试手册Build \ Binaries \ Obfuscated \“/ honor:on   / strip:on / prune:off / rename:off / suppress:on   /mapout:"ProcessBookmarks.exe.xml“/ debug:pdb xcopy / S / R / Y.   “C:\ Builds \ 5 \ BIMS \ Sandbox Branch Private Test Manual   建立\二进制\混淆后的\ ProcessBookmarks.exe”   “C:\ Builds \ 5 \ BIMS \ Sandbox Branch Private Test Manual Build \ Binaries \”“   退出代码4.“

我已经对这个问题进行了数小时的研究,实验和谷歌搜索,并且无法找出错误的解释。当我在本地运行构建时,命令工作得很好。任何帮助将不胜感激

编辑: 我已经多次尝试通过命令行使dotfuscator工作。我确保dotfuscator命令在本地工作,但是当我运行构建定义时,dotfuscator命令行退出代码1,如下所示,我不知道如何解决它:

  

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets(3717):命令“”C:\ Program Files(x86)\ PreEmptive Solutions \ Dotfuscator Professional Edition 4.9 \ dotfuscator。 exe“/ in:”C:\ Builds \ 5 \ BIMS \ Sandbox Branch Private Test Manual Build \ Binaries \ ProcessBookmarks.exe“/ out:”C:\ Builds \ 5 \ BIMS \ Sandbox Branch Private Test Manual Build \ Binaries \混淆“/ honor:on / strip:on / prune:off / enhancedOI:on / suppress:on / mapout:”C:\ Builds \ 5 \ BIMS \ Sandbox Branch Private Test Manual Build \ Binaries \ ProcessBookmarks.exe.xml“ / debug:pdb“退出代码1。

我仍然无法让dotfuscator在我的自动构建中工作,有没有人有他们如何做的例子。我真的很感激这个问题的答案。

1 个答案:

答案 0 :(得分:1)

这可能看起来很愚蠢,但请跟我一起......

我建议使用copy而不是xcopy将混淆的dll复制到输出文件夹。

我建议这样做的原因是因为我花了一天时间尝试和你一样,除了我在我的解决方案中有Dotfuscator项目(* .dotfuproj)(而不是在后期构建步骤中通过命令行调用Dotfuscator)我试图在Dotfuscator项目构建后的步骤中复制Dotfuscator输出。

当我使用xcopy时,它无法复制文件而没有任何警告,错误或消息。它只是继续没有发生任何事情 - 没有正面或负面的输出。什么都没有。

通过命令行执行xcopy命令工作正常 - 没有任何意义,为什么xcopy不起作用,为什么我没有消息指示原因。 [如果有人知道为什么这是我想知道的]

使用copy,您需要在xcopy命令中指定目标文件而不仅仅是上面的目录。

[我会将此作为评论添加到您的问题中,但我似乎没有能力/代表(?)]