Ссылаясь на код в IBM.Data.DB2, эта сборка недоступна для остальной части моего решения.
У меня есть консольное приложение С# с тремя сборками: Main
, Common
и Utilities
.
В файле в сборке Main
Main.cs
у меня есть строка:
using Utilities;
В каталоге внутри сборки Common
у меня есть DLL IBM.Data.DB2.dll
.
В сборке Utilities
у меня есть исходный модуль, который обращается к указанной dll.
Утилиты имеют ссылку на IBM.Data.DB2
.
В исходном файле в этой сборке Util.cs
у меня есть строка:
using IBM.Data.DB2;
Если в рамках метода в этом файле я делаю ссылку на код в сборке DB2, как в:
DbConnection c = new DB2Connection( _connectString );
Я получаю сообщение об ошибке сборки Main
, в котором указано, что имя пространства имен Utilities
не может быть найдено. Utilities
компилируется с использованием линии или без нее. Если я прокомментирую вышеприведенную строку, все компилируется нормально.
Ответы
Ответ 1
Пришел полезный коллега и решил это для меня примерно через пять секунд.
Оказывается, что по умолчанию, когда в VS 2010 создается новое консольное приложение, оно получает целевую структуру "Профиль клиента .NET Framework 4". Изменение этого параметра на ".NET Framework 4" заставило проблему уйти.
Ответ 2
Имел дело с аналогичной проблемой в VS 2013. Я проверил версию сборки профиля клиента, все выглядело хорошо, и я, наконец, понял, что мне нужно щелкнуть правой кнопкой мыши на вкладке "Ссылки", чтобы добавить проекты, которые я включил в свое решение Рекомендации. Я сделал это, и все нажало!