Пользовательские атрибуты не являются согласованными ошибками при переносе решения VS 2008 на VS 2010.

Я пытаюсь перенести свое решение VS 2008 на VS 2010. Все работает отлично (скомпилировать и связать), если я сохраняю целевую структуру на уровне 4.0.

Когда я меняю фреймворк 2.0 и изменяю фреймворк платформы v100 (чтобы избавиться от ошибок компиляции) только для того, чтобы столкнуться с ошибками связывания метаданных, такими как этот:

ошибка LNK2022: сбой операции с метаданными (80131195): пользовательские атрибуты не согласованы: (0x0c0000f7). C:\Development\Main\Filemaster\SoxService\MSVCMRTD.lib(managdeh.obj)

Я читал, что должен использовать ILDAsm, но ему не нравится мой файл obj, и, поскольку ссылка не завершена, у меня нет исполняемого файла для загрузки.

Может ли кто-нибудь дать несколько советов о том, как найти виды ошибок?

Я не ненавижу ничего хуже, чем сражаться с инструментом!


person Iunknown    schedule 29.03.2011    source источник
comment
Ориентация на что-либо, кроме .NET 4, при использовании C++/CLI в VS2010 проблематична. Требуются инструменты сборки VS2008, а импортированные проекты необходимо редактировать вручную. Вам нужно лучше объяснить платформу framework v100, это не имеет особого смысла.   -  person Hans Passant    schedule 29.03.2011


Ответы (1)


Я смог обойти эту проблему, зайдя в XML-файл проекта и изменив TargetFramework на 4.0. После этого все скомпилировалось и слинковано.

Ганс, он имеет в виду C++ Native Multi-Targeting, который можно найти в этом месте Platform Framework можно изменить в разделе "Свойства проекта" > "Общие", и это рекомендуется в статье, однако это не работает из-за очевидных ошибок в VC++.

person Mark Symmonds    schedule 23.11.2011
comment
Это был правильный ответ для меня. Спасибо за предварительную помощь! :-) - person Christopher Karper; 15.02.2012