#.net #msbuild #msbuild-task
#.net #msbuild #msbuild-задача
Вопрос:
Я перенес свой проект с .NET 3.5 на 4.0 и, следовательно, использую MSBuild.exe из C:WINDOWSMicrosoft.NETFrameworkv4.0.30319 вместо C:WINDOWSMicrosoft.NETFrameworkv3.5 . Это вызывает сбой задачи ExecuteDDL. Пожалуйста, помогите. Приветствую, Набин
Комментарии:
1. Конечно, этой информации достаточно для продолжения. Нет. Исключения? Внутренние исключения? Журналы событий? Журналы сборки?
2. Неожиданный сбой задачи «ExecuteDDL». Исключение System.IO.FileNotFoundException: не удалось загрузить файл или сборку ‘Microsoft.SQLServer. ConnectionInfo, версия = 9.0.242.0, Культура = нейтральная, PublicKeyToken= 89845dcd8080cc91’ или одна из его зависимостей. Системе не удается найти указанный файл. Имя файла: ‘Microsoft.SQLServer. ConnectionInfo, версия = 9.0.242.0, Культура = нейтральная, PublicKeyToken= 89845dcd8080cc91’ в системе. Отражение. RuntimeAssembly. _nLoad(имя файла AssemblyName, строковая кодовая база, доказательство безопасности сборки, RuntimeAssembly locationHint, StackCrawlMark amp;amp;
Ответ №1:
«Не удалось загрузить файл или сборку «Microsoft.SQLServer.ConnectionInfo, версия = 9.0.242.0,»
Похоже, он ищет клиентские инструменты SQL Server 2005, они у вас установлены?
Ответ №2:
Задача ExecuteDDL из задач сообщества MSBuild использует Microsoft.SQLServer.Сборка ConnectionInfo. Сборка загружается динамически и пытается загрузить следующие сборки в следующем порядке:
- Microsoft.SQLServer.ConnectionInfo, версия = 10.0.0.0, Культура = нейтральная, PublicKeyToken=89845dcd8080cc91
- Microsoft.SQLServer.ConnectionInfo, версия = 9.0.242.0, Культура = нейтральная, PublicKeyToken=89845dcd8080cc91
Поэтому он пытается загрузить 10.0 (Sql Server 2008), затем 9.0 (Sql Server 2005). Если он не может найти ни один из них, он завершается ошибкой с полученным вами исключением.
Sql Server по умолчанию помещает их в GAC, поэтому сначала проверьте, есть ли они на вашем компьютере. Если это не решит вашу проблему, дайте мне знать. Я написал задачу, и я получу от вас дополнительную информацию и заставлю ее работать.
Обновить
Поддержка Sql Server 2008 была добавлена только 03/2009, и, к сожалению, официальные выпуски старше этого. Возьмите сборку nightly из http://msbuildtasks.tigris.org / в котором исправлено множество ошибок:
Комментарии:
1. GAC имеет версию 10.0.0.0, но у него нет версии 9.0.242.0. Однако MSBuild из Framework 3.5 работает нормально, тогда как MSBuild из framework 4.0 выдает исключение.
2. Я подтвердил, что эта задача отлично работает с MSBuild 4.0. Попробуйте установить последнюю версию. Я обновил свой ответ выше.
3. Я могу подтвердить, что получение последней ночной сборки вместо этого устраняет проблему. Последняя версия, которую вы, естественно, выбрали бы по умолчанию, серьезно устарела!