2012-08-01 79 views
0

我在Visual Studio 2010中構建了一個64位C#.NET DLL。我的項目的構建後步驟包括運行sgen.exe以爲我的程序集生成相應的XmlSerializer DLL。 (我試圖加載一個CLR函數到SQL Server 2012中。該函數執行一些XML序列化。)XML串行器生成器工具(Sgen.exe)生成64位Windows DLL?

有沒有一種方法可以用任何版本的sgen.exe生成64位代碼?或者是否有我應該安裝的特定Windows SDK?似乎無法找到下載網站。

回答

3

您可以通過下於/ C參數#編譯器選項:

sgen.exe /c:/platform:x64 

,但不知道它是有道理的MSIL

+0

謝謝你。我錯過了「/ c」和「/ platform」之間的「:」。我仍然無法在將在SQL 2012中工作的64位框中構建C#用戶定義函數(UDF)DLL和隨附的XML序列化程序DLL。(如果我在32位框中構建它們,則工作正常)。 – Buggieboy 2012-08-01 22:11:58

1

通過查看sgen內置的XML序列化程序集應建爲AnyCPU,等會在x86上運行32位,在x64上運行64位。是否有一個原因需要強制它到x64?

+0

是。這是因爲我試圖執行http://support.microsoft.com/kb/913668,它將64位CPU上的XmlSerializers DLL加載到SQL 2012中。 – Buggieboy 2012-08-01 22:05:54

+0

@Buggieboy因爲序列化程序集是作爲AnyCPU構建的,所以它們可以在32位和64位機器上本地加載和運行。該DLL只包含MSIL,然後根據它加載的體系結構將其打印到適當的x86或x64指令中。 – Iridium 2012-08-02 07:00:41