Сбой MSBuild ExecuteDDL в .NET Framework 4.0

#.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. Я могу подтвердить, что получение последней ночной сборки вместо этого устраняет проблему. Последняя версия, которую вы, естественно, выбрали бы по умолчанию, серьезно устарела!