FileNotFoundException pro mscorlib.XmlSerializers.DLL, která neexistuje

hlasů
11

Jsem pomocí XmlSerializer rekonstruovat určitého typu v mscorelib.dll

XmlSerializer ser = new XmlSerializer( typeof( [.Net type in System] ) );
return ([.Net type in System]) ser.Deserialize( new StringReader( xmlValue ) );

To vyvolá chycen FileNotFoundExceptionpři načtení montáž:

„Nelze načíst soubor nebo sestavení‚mscorlib.XmlSerializers, Version = 2.0.0.0, Culture = neutrální, PublicKeyToken = b77a5c561934e089‘nebo některou jeho závislosti. Systém nemůže nalézt uvedený soubor.“

FusionLog:

=== Pre-bind state information ===
LOG: User = ###
LOG: DisplayName = mscorlib.XmlSerializers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
 (Fully-specified)
LOG: Appbase = file:///C:/localdir
LOG: Initial PrivatePath = NULL
Calling assembly : System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\localdir\bin\Debug\appname.vshost.exe.Config
LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: mscorlib.XmlSerializers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers/mscorlib.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers.EXE.
LOG: Attempting download of new URL file:///C:/localdir/bin/Debug/mscorlib.XmlSerializers/mscorlib.XmlSerializers.EXE.

Pokud je mi známo, neexistuje žádný mscorlib.XmlSerializers.DLL, myslím, že název DLL má včela auto generované .Net hledá Serializátor.

Máte možnost vytvořit si myApplication.XmlSerializers.DLL při sestavování optimalizovat serializations, takže předpokládám, že to je součástí kontroly rámce v pro něj.

Problém je v tom, že toto se zdá být příčinou zpoždění při načítání aplikace - zdá se, že viset po dobu několika sekund v tomto bodě.

Nějaké nápady, jak se tomu vyhnout, nebo zrychlit?

Položena 15/08/2008 v 12:03
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
4

Dobře, tak jsem narazil na tento problém a našli řešení pro něj specifické pro mé oblasti.

Došlo k tomu proto, že jsem se snažil serializaci seznamu do XML dokumentu (souboru) bez příznaku kořenové XML. Jednou jsem přidal následující soubory, chyba zmizí.

XmlRootAttribute rootAttribute = new XmlRootAttribute();
rootAttribute.ElementName = "SomeRootName";
rootAttribute.IsNullable = true;

Nevím, jestli to bude vaše problémy řešit, ale pevně minu.

Odpovězeno 05/06/2009 v 00:10
zdroj uživatelem

hlasů
4

Zpoždění je z důvodu, že nebyl schopen najít na zakázku Serializátor dll systém buduje ekvivalentní kód (což je velmi časově náročné) v reálném čase.

Způsob, jakým se vyhnout zpoždění je mít systém vybudovat DLL, a ujistěte se, že je k dispozici .exe - Zkoušeli jste to?

Odpovězeno 15/08/2008 v 12:06
zdroj uživatelem

hlasů
2

Já jsem teď hádat. ale:

  1. Tento systém by mohl být generování Serializátor za celý rok mscorlib, což může být velmi pomalé.
  2. Dalo by se pravděpodobně tomu vyhnout tím, že balí typ systému ve svém vlastním druhu a serialising že místo - pak byste si Serializátor pro vlastní montáž.
  3. Ty by mohly být schopni vybudovat Serializátor pro mscorlib s sgen.exe, který byl starý způsob budování Serializátor DLL před tím, než dostal integrován do VS.
Odpovězeno 15/08/2008 v 12:44
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more