我正在尝试在 TFS 中的构建过程中自动对我的项目进行点处理。
我在项目属性下创建了一个"构建后事件",如下所示:
"C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional 版本 4.9\dotfuscator.exe"/in:"$(TargetPath)" /out:"$(TargetDir)Obfuscated\"/honor:on/strip:on/prune:off /rename:off/suppress:on/mapout:"$(TargetFileName).xml"/debug:pdb xcopy/S/R/Y "$(TargetDir)Obfuscated\$(TargetFileName)" "$(目标目录)"
当此事件开始时,我收到以下错误:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (3717): 命令"C:\程序文件 (x86)\抢占 解决方案\Dotfuscator 专业版 4.9\dotfuscator.exe" /in:"C:\Builds\5\BIMS\Sandbox Branch Private Test Manual Build\Binaries\ProcessBookmarks.exe"/out:"C:\Builds\5\BIMS\Sandbox 分支私有测试手册构建\二进制文件\混淆\"/honor:on /条带:打开/修剪:关闭/重命名:关闭/抑制:打开 /mapout:"ProcessBookmarks.exe.xml"/debug:pdb xcopy/S/R/Y "C:\构建\5\BIMS\沙盒分支私有测试手册 构建\二进制文件\混淆\进程书签.exe" "C:\构建\5\BIMS\沙盒分支私有测试手动构建\二进制文件\" 以代码 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\Obfuscated"/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在我的自动化构建中工作,有没有人有他们如何做到这一点的例子。 我真的很感激这个问题的答案。
我建议使用 copy 而不是 xcopy 将混淆的 dll 复制到输出文件夹。
我建议这样做的原因是因为我花了一天的时间尝试与您做同样的事情,除了我的解决方案中有 Dotfuscator 项目 (*.dotfuproj)(而不是在构建后步骤中通过命令行调用 Dotfuscator 并且我试图在 Dotfuscator 项目构建后步骤中复制 Dotfuscator 输出。
当我使用 xcopy 时,它无法复制文件,没有任何形式的警告、错误或消息。它只是继续,就像什么都没发生一样 - 没有正输出或负输出。无。
通过命令行执行 xcopy 命令工作正常 - 关于为什么 xcopy 不起作用以及为什么我没有收到指示原因的消息没有任何意义。[如果有人知道为什么会这样,我很想知道]
使用 copy,您需要指定目标文件,而不仅仅是上面在 xcopy 命令中指定的目录。
[我会将此作为评论添加到您的问题中,但我似乎没有能力/代表(?