답변:
에서 .NET의 구현, XmlSerializer를은 (성능상의 이유로) 클래스를 역 직렬화 / 직렬화 임시 어셈블리를 생성합니다. 즉석에서 생성 할 수도 있지만 (실행할 때마다 시간이 걸립니다) 컴파일 중에 미리 생성하여 요청하는이 어셈블리에 저장할 수 있습니다.
프로젝트 옵션에서이 동작을 변경할 수 있습니다 (각각 컴파일 -> 고급 컴파일 옵션 -> 직렬화 어셈블리 생성 , Auto 또는 On 탭 ). 프로젝트 파일의 해당 요소는 GenerateSerializationAssemblies 입니다 (예 : <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
.
Auto
되었지만 하나만 직렬화 DLL을 만들었습니다.
**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
참고로. XmlSerializers.dll이 자동 생성되지 않도록하는 정확한 단계는 다음과 같습니다.
*.XmlSerializers.dll
Sgen.exe [XML Serializer 생성기 도구]를 사용하여 생성됩니다.
일반적으로 Sgen.exe
프로젝트의 빌드 후 이벤트에 사용됩니다. 프로젝트에 빌드 후 이벤트가 있는지 확인하십시오.*.XmlSerializers.dll
프로젝트는 웹 응용 프로그램에 대한 project.XMLSerialisers.dll 만 생성합니다. 다른 응용 프로그램의 경우 sgen을 별도로 실행해야합니다.