2012-03-19 9 views
2

私は、VS.NETとVB.NETの両方で、自動的に生成されたシリアライゼーションアセンブリのよく知られた問題を解決しようとしています。プロジェクト設定の[シリアライゼーションアセンブリを生成]オプションは、Web以外のプロジェクトでは何も行いません(http://blog.devstone.com/aaron/archive/2008/02/07/2778.aspxなどを参照)。したがって、シリアライザへの呼び出しは非常に不幸なファイルI/O例外を生成し、そのために治療法はありません。上記の方法はVS2010では動作しないようで、SGENは/ proxytypesを有効にして実行されます。Web以外のプロジェクト用XMLシリアライゼーションアセンブリ

答えて

4

ソリューション:

セットいつものようにONにプロジェクト設定で「シリアル化アセンブリを生成」、その後.projファイルにこのXMLを追加します。

<PropertyGroup> 
    <SGenUseProxyTypes>false</SGenUseProxyTypes> 
    <SGenPlatformTarget>$(Platform)</SGenPlatformTarget> 
</PropertyGroup> 

最初の行は、悪をオフにし/ proxytypesスイッチ。 2番目の行は、選択されているプラ​​ットフォームがAnyCPU以外の場合に必要です。これを省略すると、シリアル化アセンブリはAnyCPUで構築され、x86またはx64のメインアセンブリにバインドできません。

+0

+1これは非常に役に立ちました! 1つは、シリアル化アセンブリを生成するプロジェクトがあり、SGenPlatformTargetを指定していないことです。しかし、x86プラットフォームの指定子はAnyCPUではなくアセンブリに含まれていますが、なぜ起こっているのかはわかりません。どんな洞察も素晴らしいアレクシーです –

関連する問題