Инструмент генератора сериализатора XML (Sgen.exe) для создания 64-разрядной библиотеки DLL Windows?

Я создаю 64-разрядную C# .NET DLL в Visual Studio 2010. Действия после сборки моего проекта включают запуск sgen.exe для создания соответствующей XmlSerializer DLL для моей сборки. (Я пытаюсь загрузить функцию CLR в SQL Server 2012. Функция выполняет некоторую сериализацию XML.)

Есть ли способ сгенерировать 64-битный код с любой версией sgen.exe? Или есть определенный Windows SDK, который я должен установить? Не могу найти сайт для скачивания.


person Buggieboy    schedule 01.08.2012    source источник


Ответы (2)


Вы можете передать параметры компилятора C# в параметре /c:

sgen.exe /c:/platform:x64

Но не уверен, что это имеет смысл для MSIL

person Raman Zhylich    schedule 01.08.2012
comment
Спасибо за это. Мне не хватало : между /c и /platform. У меня все еще возникают проблемы с созданием DLL-библиотеки определяемой пользователем функции (UDF) C# и сопутствующей DLL-библиотекой XML-сериализатора на 64-разрядной машине, которая будет работать в SQL 2012. (Хорошо работает, если я создам их на 32-разрядной машине.) - person Buggieboy; 02.08.2012

Сборка XML-сериализации, созданная sgen, должна быть построена как AnyCPU, поэтому она будет работать в 32-разрядной версии на платформе x86 и в 64-разрядной версии на платформе x64. Есть ли причина, по которой вам нужно принудительно использовать x64?

person Iridium    schedule 01.08.2012
comment
Да. Это потому, что я пытаюсь сделать это support.microsoft.com/kb/913668 , что загружает XmlSerializers DLL в SQL 2012 на 64-разрядном процессоре. - person Buggieboy; 02.08.2012
comment
@Buggieboy, поскольку сборки сериализации построены как AnyCPU, их можно загружать и запускать изначально как на 32-, так и на 64-битных машинах. DLL содержит только MSIL, который затем объединяется JIT в соответствующие инструкции x86 или x64 в зависимости от того, на какой архитектуре он загружен. - person Iridium; 02.08.2012