SGEN не работает после обновления от VS2008 до VS2010

Я просто недавно обновил проект VS2008/.NET 3.5 SP1 до VS2010 и.NET 4. У меня есть событие постсборки, которое называет SGEN для генерации блока XmlSerializers.

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

"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 /?".

Я получаю ту же ошибку при выполнении SGEN из командной строки, но я не могу выяснить, какова проблема. Какие-либо идеи?

6
задан M. Dudley 30 April 2010 в 17:22
поделиться

2 ответа

Да, есть две версии sgen.exe, одна для сборок CLR v2, другая для сборок CLR v4. Это происходит потому, что вы просите v2-версию sgen.exe обработать сборку v4.

Проверьте, как ваш проект запускает sgen.exe. Если это событие происходит после сборки, то вам придется изменить путь к sgen.exe. Я не вижу макроса или переменной окружения, чтобы это происходило автоматически, это небольшое упущение.

2
ответ дан 10 December 2019 в 00:35
поделиться

Похоже, эта вторая строка вывода SGEN важна:

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

Я нашел другую версию SGEN, которая, похоже, работает на C: \ Программные файлы \ Microsoft SDK \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \ sgen.exe . При запуске он выводит следующее:

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

Я не уверен, почему оба они включены в Windows 7 SDK ...

8
ответ дан 10 December 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: