私はRemotesoft LinkerとMini Deploymentツールを使用して、マネージドコードから単一のネイティブ実行可能ファイル(フレームワークがインストールされていない)を作成しています。構成可能な機能の1つは、最終実行可能ファイルとしてcsc.exeが利用可能な場合です。 XMLシリアル化を使用しているのであれば、通常は必要になると私は指摘しています。 SGenを使用してシリアライズアセンブリを作成し、その結果をxmlクラスを使用するソリューションの各プロジェクトの参照に追加するようにビルドプロセスを変更しました。シリアライゼーションクラスはリンクされた.net実行可能ファイル(すべての.net dllを単一のマネージexeに結合したもの)にします。私はそれが正しく設定されていると仮定します。私のアプリケーションが実行中にCSCを使用する理由
しかし、実行時に私のアプリケーションはまだcscを実行しようとします。シリアル化アセンブリで何か問題があり、実行時に再作成されます。または私のアプリがcscを必要とする何か他のことをしていて、どのように私は何を決定するのですか?
http://www.remotesoft.com/linker/
Generating an Xml Serialization assembly as part of my build
編集:発生した場合には目に見える直列化ファイルを保持するように変更app.configをしていくつかのテストを完了(ビルドタイム生成を元に戻すことによってテスト);私は以前に適切に作成されているようです。実行時にcscを呼び出すフレームワークの別の部分と、別のフラグを使用してその結果を表示しない限り、私はRemoteSoftツールがおそらく責任があると考えます。私は確信することはできません。なぜなら、出力実行ファイルは、app.configファイルが犠牲になっても表示されるtempsを残さないからです。
私が使用したapp.infoはこれでした。私は4の値を使った例を見ましたが、その振る舞いに違いは見られませんでした。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <switches> <add name="XmlSerialization.Compilation" value="1" /> </switches> </system.diagnostics> </configuration>