2

TFS でのビルド プロセス中にプロジェクトを自動的に dotfuscate しようとしています。

次のように、プロジェクトのプロパティの下に「ビルド後のイベント」を作成しました。

"C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 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)" "$(TargetDir )"

このイベントが始まると、次のエラーが発生します。

"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 /rename:off /suppress:on /mapout:"ProcessBookmarks.exe.xml" /debug:pdb xcopy /S /R /Y "C:\Builds\5\ BIMS\Sandbox Branch Private Test Manual Build\Binaries\Obfuscated\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\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 を動作させるのにまだ問題があります。この質問への回答をいただければ幸いです。

4

1 に答える 1

1

xcopy ではなく copy を使用して、難読化された dll を出力フォルダーにコピーすることをお勧めします。

これを提案する理由は、ソリューションに Dotfuscator プロジェクト (*.dotfuproj) があり (ビルド後のステップでコマンドラインから Dotfuscator を呼び出すのではなく)、あなたと同じことをしようとして 1 日を費やしたからです。 Dotfuscator プロジェクトのポスト ビルド ステップ中に Dotfuscator 出力をコピーしようとしています。

xcopy を使用すると、ファイルのコピーに失敗し、警告、エラー、またはメッセージが表示されませんでした。何事もなかったかのように、正の出力も負の出力もありませんでした。何もない。

コマンド ラインから xcopy コマンドを実行しても問題なく動作しました。xcopy が機能しない理由と、その理由を示すメッセージが表示されない理由については、何もわかりませんでした。【理由がわかる方いましたら教えていただきたいです】

コピーでは、上記の xcopy コマンドのようにディレクトリだけでなく、宛先ファイルを指定する必要があります。

[これをあなたの質問へのコメントとして追加したかったのですが、私には能力/担当者がいないようです(?)]

于 2012-12-12T16:51:42.460 に答える