我正在尝试在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在我的自动构建中工作,有没有人有他们如何做的例子。我真的很感激这个问题的答案。
答案 0 :(得分:1)
这可能看起来很愚蠢,但请跟我一起......
我建议使用copy而不是xcopy将混淆的dll复制到输出文件夹。
我建议这样做的原因是因为我花了一天时间尝试和你一样,除了我在我的解决方案中有Dotfuscator项目(* .dotfuproj)(而不是在后期构建步骤中通过命令行调用Dotfuscator)我试图在Dotfuscator项目构建后的步骤中复制Dotfuscator输出。
当我使用xcopy时,它无法复制文件而没有任何警告,错误或消息。它只是继续没有发生任何事情 - 没有正面或负面的输出。什么都没有。
通过命令行执行xcopy命令工作正常 - 没有任何意义,为什么xcopy不起作用,为什么我没有消息指示原因。 [如果有人知道为什么这是我想知道的]
使用copy,您需要在xcopy命令中指定目标文件而不仅仅是上面的目录。
[我会将此作为评论添加到您的问题中,但我似乎没有能力/代表(?)]