2010-04-30 6 views
6

Ho recentemente aggiornato un progetto VS2008/.NET 3.5 SP1 a VS2010 e .NET 4. Ho un evento post-build che chiama SGEN per generare l'assembly XmlSerializers.SGEN non funziona dopo l'aggiornamento da VS2008 a VS2010

Ogni volta che provo a eseguirlo, ho il seguente errore.

"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\sgen.exe" /debug /force /verbose /c:"platform:x86" "C:\path\to\SomeAssembly.dll" 
Microsoft (R) Xml Serialization support utility 
[Microsoft (R) .NET Framework, Version 2.0.50727.3038] 
Copyright (C) Microsoft Corporation. All rights reserved. 
Error: An attempt was made to load an assembly with an incorrect format: c:\path\to\someassembly.dll. 
    - Could not load file or assembly 'file:///c:\path\to\someassembly.dll' 
or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded. 

If you would like more help, please type "sgen /?". 

ottengo lo stesso errore di esecuzione SGEN dalla riga di comando, ma io non riesco a capire quale sia il problema. Qualche idea?

risposta

2

Sì, ci sono due versioni di sgen.exe disponibili, uno per Assiemi CLR v2, l'altro per gli assembly CLR v4. Bombarda perché chiedi alla versione v2 di sgen.exe di elaborare un assembly v4.

Verificare l'avvio del file sgen.exe. Se si tratta di un evento post-build, sarà necessario modificare il percorso di sgen.exe. Non vedo una macro o una variabile di ambiente per farlo funzionare correttamente, un po 'di svista.

8

Sembra come tale seconda linea di uscita dal SGEN è importante:

[Microsoft (R) .NET Framework, Version 2.0.50727.3038] 

ho trovato un'altra versione di SGEN che sembra funzionare a C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\sgen.exe. Produce questo quando lo si esegue:

[Microsoft (R) .NET Framework, Version 4.0.30319.1] 

io non sono sicuro perché entrambi sono inclusi in Windows 7 SDK ...

Problemi correlati