Я обновлял несколько различных проектов VS2008 в VS2010 и нашел проблему с проектами VB.Net, когда они преобразовываются.
После того, как преобразованный, .vbproj файлы изменились от этого в VS2008:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>CustomerManager.xml</DocumentationFile>
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
</PropertyGroup>
К этому в VS2010:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>CustomerManager.xml</DocumentationFile>
<NoWarn>42353,42354,42355</NoWarn>
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
</PropertyGroup>
Основное различие, то, что в версии VS2010, эти 42353,42354,42355 значения были добавлены; В IDE это проявляется как следующая установка в Свойствах проекта | раздел Compile как:
"Функция возвращая внутреннее значение вводит без возвращаемого значения" = Ни один
Это не проблема, когда строительные нормы и правила в Visual Studio 2010, но при попытке создать код через наши непрерывные сценарии интеграции, она перестала работать со следующими ошибками:
[msbuild] vbc: ошибка Командной строки BC2026: предупреждение номер '42353' для опции 'nowarn' или не настраивается или не допустимо
[msbuild] vbc: ошибка Командной строки BC2026: предупреждение номер '42354' для опции 'nowarn' или не настраивается или не допустимо
[msbuild] vbc: ошибка Командной строки BC2026: предупреждение номер '42355' для опции 'nowarn' или не настраивается или не допустимо
Я ничего не мог найти на Google для этих сообщений, который является странным, поскольку я пытаюсь узнать, почему это происходит.
Какие-либо предложения относительно того, почему мастер преобразования 2010-х Visual Studio делает это?
Вы изменили сценарий сборки для использования версии 4.0 MSBuild? Мне кажется, что вы этого не сделали, и MSBuild жалуется, что ничего не знает о предупреждении 42353 и т. Д. (Что имело бы смысл, если бы они были введены в 4.0)
Я воспроизвожу это поведение в конвертированных проектах. Не могу найти никаких документов о том, что означают эти предупреждающие числа, библиотека MSDN еще не обновлена. Тем не менее, мой компилятор не имеет с ними проблем. Ваша проблема почти наверняка вызвана тем, что ваш сервер сборки или скрипты используют старую версию vbc.exe. Убедитесь, что та, что находится в папке c:\windows\microsoft.net\framework\v4.0.30319 компилирует код.
Просто отредактируйте файл проекта *.vbproj и удалите все вхождения 42353,42354,42355, это должно решить проблему сборки.
Вы совершенно правы, считая, что взлом файлов .vbproj не является решением проблемы. Вам нужно отредактировать .config для службы сборки TFS, чтобы использовать версию MSBuild 4.0, как описано на http://blogs.msdn.com/b/willbar/archive/2009/11/01/building-net-4-0-applications-using-team-build-2008.aspx . Примечание: чтобы изменения вступили в силу, службу нужно перезапустить, и вам нужно будет использовать правильную директорию для фреймворка .NET 4.0 (в блоге указана бета-версия)
.