2

この投稿を読んで同じ問題が発生した後 (マニフェストをビルドしようとしたとき):

MSB3171: Problem generating manifest. Could not load file or assembly or one of its dependencies. An attempt was made to load a program with an incorrect format.

ClickOnce の展開で .NET Reactor (暗号化/難読化ツール) を使用して成功したがいるかどうかを知りたいです。私はさまざまな手法を試して午前中ずっとネットを探し回りました。一部の手法は Dotfuscator と Xenocode で機能するので、読んでみましたが、.NET Reactor からは何の愛も得られません。

ClickOnce が暗号化されたファイル (.NET Reflector 内で開くことさえできない) に対してマニフェストを生成しようとしているため、このメッセージが受信されていると本当に思います...

ここにはどのようなオプションがありますか?

4

2 に答える 2

4

ClickOnce と .NET Reactor で同じ問題に直面しました。難読化を拒否しました。

はい。それで合っています。ClickOnce では、アセンブリ バージョン、その依存関係、製造元などをファイルから抽出する必要があります。ClickOnce は、難読化が完了した後にアセンブリではなくなったアセンブリを読み込もうとしています。これは通常のバイナリ .exe ファイルです。

私にとってはうまくいったひどい回避策が1つありますが、プロジェクト管理者はその考えを拒否しました。

すべてのバイナリをビルドして難読化します。AfterBuild イベントごとにそれらを zip (または何でも) ファイルにパックします。zip を「データ ファイル」としてマークします (プロジェクト設定 -> 発行 -> アプリケーション ファイル... -> 発行ステータス -> データ ファイル)。その後、単一の難読化されていない実行可能 (.exe) アセンブリを作成します。これは、難読化された実行可能ファイルの 1 つを解凍して実行するだけです。その新しい実行可能ファイルの ClickOnce パブリッシュ展開をセットアップします。

編集:私が十分に明確でないかどうか尋ねてください。

于 2009-12-30T12:13:47.940 に答える