2012-06-27 3 views
3

Мой клиентский код вызывает веб-службу .asmx старой школы. В целях повышения производительности, я предварительно сгенерированные сериализации сборки с помощью следующей команды, которая запускается в папке bin/выпуска:Почему код компилирует сборку сериализации, если я уже создал его?

for %%a in (*.dll) do sgen /assembly:%%a 

Это существенно перебирает все файлы .dll и называет sgen /assembly:foo.dll на них , После этой команды каждая сборка имеет сборку foo.XmlSerializers.dll.

Однако, когда я просматриваю код, я вижу, что в коде все еще есть перфоманс, и он все еще компилирует сборку сериализации (полностью игнорируя мою предварительно сгенерированную, как проверено ProcMon).

enter image description here

Почему не использовать мои предварительно сгенерированные сериализации сборки?

ответ

0

Он пытается загрузить файл .XmlSerializers.dll, но по какой-то причине ему не удается его восстановить. Возможно, потому, что он не синхронизирован с вашей сборкой.

Попробуйте добавить это в файл app.config:

<configuration> 
    <system.diagnostics> 
     <switches> 
      <add name="XmlSerialization.PregenEventLog" value="1" /> 
     </switches> 
    </system.diagnostics> 
</configuration> 

Это позволит сделать генератор печати ошибок он сталкивается в журнал событий.

Дополнительная информация: XmlSerializers, ModuleVersionId, ILMerge, and You - Bits in Motion (blog)


Вы также можете быть заинтересованы в этом так вопрос: Generating an Xml Serialization assembly as part of my build