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

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

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

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

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

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

2
Iunknown 29 Мар 2011 в 06:23
2
Ориентация на что-либо, кроме .NET 4, при использовании C++/CLI в VS2010 проблематична. Требуются инструменты сборки VS2008, а импортированные проекты необходимо редактировать вручную. Вам нужно лучше объяснить «платформа платформы v100», это не имеет особого смысла.
 – 
Hans Passant
29 Мар 2011 в 07:35

1 ответ

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

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

3
Mark Symmonds 23 Ноя 2011 в 21:23
1
Это был правильный ответ для меня. Спасибо за предварительную помощь! :-)
 – 
Christopher Karper
15 Фев 2012 в 19:36