Перенос проекта SQL CLR из VS2008 в VS2010 - сбой развертывания - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть решение с проектом SQL CLR в VS2008. Решение / проект был преобразован в VS2010, и теперь развертывание больше не работает. Я получаю следующие ошибки:

Начало развертывания сборки MyProjectDatabaseCode.dll на сервере DEVPN-004: MyProject При развертывании проекта SQL CLR, созданного для версии .NET Framework, несовместимой с целевым экземпляром SQL Server, может возникнуть следующая ошибка: «Ошибка развертывания SQL01268: CREATE ASSEMBLY для сборки не удалось, поскольку проверка сборки не удалась». Чтобы решить эту проблему, откройте свойства проекта и измените версию .NET Framework. C: \ inetpub \ wwwroot \ VS2010_MyProjectSolution \ DatabaseCode \ bin \ Release \ MyProjectDatabaseCode.dll: Ошибка развертывания: обнаружены ошибки проверки плана; развертывание не может продолжаться. C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ TeamData \ Microsoft.Data.Schema.SqlClr.targets (96,5): ошибка развертывания TSD00561: в этом развертывании могут возникать ошибки во время выполнения из-за изменений в [dbo]. [Column1] заблокированы зависимостью [dbo]. [Table1]. [Column1] в целевой базе данных.

Я проверил, и проект нацелен на .NET 3.5. У нас есть файлы preployscript.sql и postdeployscript.sql, которые должны быть запущены. Похоже, что они не управляются VS2010. Что может быть причиной проблемы?

Ответы [ 3 ]

1 голос
/ 22 сентября 2010

Мы связались с Microsoft, и они воспроизвели нашу проблему как известную ошибку. Они предложили обходной путь, перенаправив сборку на .NET 2.0, но в нашем сценарии это тоже не сработало. Похоже, что единственный путь до исправления - создать новый проект SQL CLR в 2010 году и вручную добавить все файлы в него.

0 голосов
/ 15 июня 2011

Мне кажется, что эта проблема постоянно возникает, когда я переименовываю некоторые объекты или как-то не синхронизируется целевая база данных, то есть некоторые объекты не удаляются, и Deploy пытается воссоздать их.Мне удалось это исправить, запустив сценарий очистки (удаление объектов / сборок) из MS Server Management Studio и убедившись, что в базе данных не осталось старых объектов.Это попытка попытка / ошибка, но вы можете сначала попытаться выполнить развертывание на другом сервере / в базе данных, и, если это удастся, есть вероятность, что у вас есть мусор в целевой базе данных, поэтому я пришел к выводу, что смог развернуть в другую базу данных.,

0 голосов
/ 15 сентября 2010

Я бы рекомендовал использовать Reflector , чтобы взглянуть на вашу сборку в выходном каталоге сборки.Если вы видите 2 ссылки на mscorlib, то произошло то, что фантомная ссылка на платформу 4.0 была добавлена ​​в проект.Если вы видите эту проблему, вы можете избавиться от ссылки 4.0, отредактировав файл проекта вручную.Откройте проект в редакторе XML и найдите следующую строку:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="2.0">

Измените ToolsVersion="2.0 "на ToolsVersion="4.0"

Это помогло мне с такой же проблемой обновления, ноВаш пробег может варьироваться.Если вы не видите ссылку на фантом mscorlib, возможно, у вас есть другая проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...