Bir montaj oluşturan bir proje üzerinde çalışıyorum. Ek bir derleme * .XmlSerializers.dll oluşturulmakta olduğunu fark ettim. Bu dosya neden otomatik olarak oluşturulur ve ne için kullanılır?
Bir montaj oluşturan bir proje üzerinde çalışıyorum. Ek bir derleme * .XmlSerializers.dll oluşturulmakta olduğunu fark ettim. Bu dosya neden otomatik olarak oluşturulur ve ne için kullanılır?
Yanıtlar:
In .NET uygulama, XmlSerializer (performans nedenlerle) sizin sınıfları deserializing / serializing için geçici derlemesi oluşturur. Ya anında üretilebilir (ancak her çalıştırmada zaman alır) ya da derleme sırasında önceden oluşturulabilir ve sorduğunuz bu derlemede kaydedilebilir.
Sen proje seçeneklerinde bu davranışı değiştirebilirsiniz (sekme Compile -> Gelişmiş Derleme Seçenekleri -> serileştirme derlemelerini üret , Oto veya Açık sırasıyla). Proje dosyasındaki karşılık gelen öğe , örneğin GenerateSerializationAssemblies'dir<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
.
Auto
, ancak yalnızca biri bir serileştirme DLL'si oluşturdu.
**Generate Serialization Assemblies** Specifies whether the compiler will use the XML Serializer Generator Tool (Sgen.exe) to create XML serialization assemblies. Serialization assemblies can improve the startup performance of XmlSerializer if you have used that class to serialize types in your code. By default, this option is set to Auto, which specifies that serialization assemblies be generated only if you have used XmlSerializer to encode types in your code to XML.
msdn.microsoft.com/en-us/library/kb4wyys2.aspx
Bilginize. XmlSerializers.dll dosyasının otomatik olarak oluşturulmasını durdurmak için tam adımlar şunlardır:
Bence bu, performans nedenleriyle XML serileştiricilerin JIT (Tam zamanında) derlemesi.
RegexOptions.Compiled seçeneğini açık kullanarak RegEx örnekleriyle aynı şeyi elde edersiniz.
Ben .NET CLR uzmanı değilim, kesin teknik ayrıntı eksikliği için üzgünüm.
*.XmlSerializers.dll
Sgen.exe [XML Serializer Generator Tool] kullanılarak oluşturulur
MSDN'de Sgen.exe'ye bakın
Tipik olarak, Sgen.exe
Projelerin Oluşturma Sonrası olaylarında kullanılır. Projenizde bir post build olayı olup olmadığına bakın.*.XmlSerializers.dll
Proje yalnızca web uygulamaları için project.XMLSerialisers.dll dosyasını oluşturur. Diğer uygulamalar için sgen'i ayrı çalıştırmanız gerekir.