Вот странная вещь, с которой я столкнулся сегодня днем ... У меня есть библиотека смешанного режима, которую я сделал некоторое время назад, и она отлично работает с VS2008. Я нахожусь в процессе перехода на VS2010 и попытался создать эту библиотеку с помощью IDE VS2010. Как и ожидалось, IDE говорит мне, что решение нужно преобразовать в VS2010, я позволяю ему это сделать... никаких ошибок при преобразовании. Я иду собирать библиотеку, и, похоже, либо проблема с порядком сборки, либо процесс сборки не может распознать неуправляемый код из управляемого кода. (Пример... Я вижу ошибку, когда вводится управляемый заголовок: cannot convert int to System::String^
, где есть метод класса, который принимает System::String^
в качестве одного из своих параметров и устанавливает переменную-член в ее значение).
Хорошо, теперь сделайте шаг назад и вернитесь к файлам решения/проекта до того, как они были преобразованы. Откройте командную строку VS2010 и используйте MSBuild, чтобы попытаться создать решение без его предварительного преобразования. Все строится нормально.
? Хм ?
В файлах проекта явно что-то изменилось, но что? И почему IDE не может собрать проект без конвертации файлов проекта, а MSBuild без кашля проходит через них? Очевидно, я хотел бы иметь возможность редактировать свой исходный код с помощью IDE — кто-нибудь еще имел подобный опыт или слышал об этой проблеме раньше? Любые идеи о том, как это исправить?