Ошибка создания сборки в SQL Server 2008 R2 - PullRequest
3 голосов
/ 20 сентября 2011

У нас проблемы с созданием сборки в нашей базе данных, и нам нужна помощь.У нас есть две сборки .NET 2.0 (ABC.Company.App1.dll и ABC.Company.App2.dll).Обе сборки имеют ссылки только на System, System.Data и System.XML.ABC.Company.App1.dll также ссылается на ABC.Company.App2.dll.

Мы пытаемся создать сборку ABC.Company.App1.dll, используя:

CREATE ASSEMBLY App1 
AUTHORIZATION dbo 
FROM 'C:\ApplicationPath\ABC.Company.App1.dll' 
WITH PERMISSION_SET = SAFE
GO

Примечание.Обе сборки находятся в C: \ ApplicationPath.

Но это не удается.Ошибка:

Сообщение 10300, уровень 16, состояние 1, сборка линии 21 'ABC.Company.App1' сборка ссылок 'ABC.Company.App2, версия = 0.0.0.0, культура = нейтральная, publickeytoken = null. ', которого нет в текущей базе данных.SQL Server попытался найти и автоматически загрузить указанную сборку из того же места, откуда пришла ссылающаяся сборка, но эта операция завершилась неудачно (причина: несовпадение версии, языка или открытого ключа).Загрузите указанную сборку в текущую базу данных и повторите запрос.

В чем проблема?Как мы можем это исправить?

Версия ABC.Company.App2 определенно не 0.0.0.0.Мы попытались сначала создать сборку ABC.Company.App2 в нашей базе данных, но это успешно, но попытка создать сборку ABC.Company.App1 все еще не удалась.Немного больше информации.Мы пробовали с PERMISSION_SET = SAFE, UNSAFE и EXTERNAL_ACCESS, ни один из которых не работает.И эти DLL не имеют строгих имен и не зарегистрированы в GAC.

Справка?!

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

У меня была эта проблема, и я в конце концов решил ее. Я ссылался на сборку x86 на 64-битном сервере. Я перестроил сборку, на которую ссылаются, как Любой ЦП, установленный на сервере, заново добавил ссылку на проект, перестроил свой проект как Любой ЦП, и затем SQL Server мог бы разрешить ссылку и установить сборку.

Сообщение "Вы ссылаетесь на сборку, созданную для неправильной платформы" было бы весьма полезным:)

0 голосов
/ 20 сентября 2011

Похоже, вы пытаетесь создать сборку ABC.Company.App1.dll, которая ссылается на ABC.Company.App2.dll, но, поскольку ABC.Company.App2.dll еще не создана, вы получаете ошибку,Попробуйте сначала создать ABC.Company.App2.dll.

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