Ошибка при компиляции библиотеки в C # - PullRequest
4 голосов
/ 22 марта 2011

Я пытаюсь скомпилировать класс (sqlAccess), объявленный как открытый, с несколькими методами, связанными с подключением к базе данных.Я получаю следующую ошибку ...

Error   1   Friend access was granted to 'SqlAccess, PublicKey=00c8', but the      output assembly is named 'SQLAccess, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Try adding a reference to 'SqlAccess, PublicKey=00c8' or changing the output assembly name to match.    c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll  SQLAccess

В чем может быть причина?уже есть метод с таким именем?Я новичок в программировании, поэтому не могу понять это ясно.Спасибо.

Ответы [ 5 ]

7 голосов
/ 06 сентября 2013

Это сработало для меня: откройте вкладку Свойства | Подписи.Убедитесь, что у вас установлен флажок «Подписать сборку» и имеется ссылка на файл ключа строгого имени.Сохраните и скомпилируйте проект / решение.(цитируется по MSDN)

2 голосов
/ 25 января 2013

.NET кажется раздражительным, если вы даете своей сборке / проекту имя, которое не уникально.В вашем случае SqlAccess уже должен существовать в .NET или ссылочной сборке.

Исправлено переименование сборки.

Аналогичная проблема: Странная ошибка в C #

1 голос
/ 08 сентября 2015

Причина этого должна заключаться либо в том, что вы переустановили / обновили эту конкретную dll в своем решении, но старая dll не была должным образом удалена из вашего решения и системы.Вот почему это сработало, когда вы изменили имя сборки (с sqlAccess на sqlAccessXYZ )

1 голос
/ 30 апреля 2014

Это потому что SqlAccess сборка имеет ссылку, которая предоставила внутренний доступ к SqlAccess.Это должно быть что-то вроде этого [вы найдете это в AssemblyInfo.cs]:

[assembly: InternalsVisibleTo("Name of assembly goes here, PublicKey=")]

Во время компиляции, когда компилятор не может найти сборку с определенным PublicKey, вы получите ошибку, такую ​​как «Доступ друга былпредоставляется на...'.Для решения этой проблемы одним из решений является удаление вышеуказанного атрибута из исходной сборки или добавление нового открытого ключа и изменение его в исходной сборке.

0 голосов
/ 22 марта 2011

Я изменил имя сборки на sqlAccessXYZ и теперь она работает, проблема с именем.Не уверен, что именно проблема, на данный момент проблема решена.Спасибо.

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