2012-05-31 187 views
10

Visual Studioの[シリアル化アセンブリを生成]オプションは、プロジェクトの作成時にMyAssembly.XmlSerializers.dllを作成します。この質問(https://stackoverflow.com/questions/934411/what-is-myassembly-xmlserializers-dll-generated-for)は、それが最初にあった理由を示しており、回答の一部はそれをオフにする方法を提供しますが、私の質問はなぜそれをオフにすることですか?それがオンになっていると、特定の状況で問題が発生しますか(もしあれば、その状況は何ですか)?シリアル化アセンブリの生成をオフにする利点は何ですか?

+1

Erm、あなたのプロジェクトはより速く構築されます。それは確かに速く実行されません。 –

+1

@ HansPassant - 「より早く実行されない」ことを明らかにするために - シリアル化アセンブリは、アプリケーションがそれらに触れると構築されているので、全体のパフォーマンスではなく起動時間に影響します。 –

答えて

5

明示的にx64のアセンブリでx32 SDKからsgenを使用すると、ビルド時エラーが発生するため、msbuildなどのビルドツールで問題が発生する可能性があります(正しく設定すると簡単にこれを克服できます)代わりにSGenToolPathのパスをmsbuildまたはMSILに設定します)。 IMHOビルド時間の問題に対処し、起動時間を短縮する方が良いです。

1

これをオフにすると、アプリケーションをv4.0にアップグレードした結果、ビルドと実行時のエラーが停止しました。私は、オンラインで投稿されたソリューションの多くを試した後、SGENのエラーを取得していました。これを行うことでその問題が解決されました。

2

"ClickOnce"アプリケーションに署名する必要があるときに、私はそれをオフにしなければなりませんでした。私は、シリアライゼーションアセンブリの生成でそれをうまく展開できませんでした。 MyAssembly.XmlSerializers.dllにはマニフェストファイルの参照が含まれていましたが、展開パッケージの一部ではありません。

関連する問題