2012-03-19 43 views
2

我正試圖解決在VS 2010中自動生成序列化程序集的衆所周知的問題,包括VB.NET和C#。項目設置中的「生成序列化程序集」選項對非Web項目不起作用(請參見http://blog.devstone.com/aaron/archive/2008/02/07/2778.aspx等)。因此,對串行器的調用會生成非常不幸的文件I/O異常,並且無法解決這些異常。上面建議的方法似乎不適用於VS2010,而SGEN仍然在啓用/ proxytypes的情況下運行。用於非web項目的XML序列化程序集

回答

4

解決方案:

集「生成序列化大會」在項目設置,像往常一樣,再加入這個XML到.proj文件:

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

第一行關閉惡/代理類型切換。如果選擇的平臺是AnyCPU以外的其他平臺,則需要第二行。如果省略,則序列化程序集將使用AnyCPU構建,並且無法綁定到可能是x86或x64的主程序集。

+0

+1這非常有幫助!有一點對我們來說有點關注,我們有一些生成序列化程序集的項目,我們沒有指定SGenPlatformTarget。然而,x86平臺說明符包含在程序集中而不是AnyCPU中,不知道爲什麼會發生這種情況。任何見識將是偉大的alexkai – 2013-01-08 21:08:29