Тип или пространство имен не найдено.C # + оракул - PullRequest
0 голосов
/ 17 января 2011

Edit3: Извините за постоянные изменения, я уверен, что есть закон, который гласит, что прогресс будет достигнут только после того, как вы публично запросили решение.

Я открыл сборку оракула в Reflector. Сборка включает ссылку как на mscorlib v1.0.3705, так и на mscorlib 2.0.0.0 ...

Он также ссылается на сборку Common.Logging, которая предназначена для среды выполнения v1.0.3705.

Это кажется мне странным. Кто-нибудь когда-либо видел что-то подобное раньше?

Edit2: Хорошо, создано приложение WPF против 3.5. Ссылался на мою библиотеку API, добавил строку для вызова кода, который объявляет переменную типа интерфейса, объявленного в библиотеке Oracle, и все это работает.

Таким образом, проблема возникает только с приложениями Framework 4. Это имеет определенное значение для меня, так как 3.5 по сути 2 с некоторыми дополнительными библиотеками. Но теперь я не совсем понимаю, почему я могу ссылаться на сборку 2 в моем проекте 4 и использовать ее типы, но не на Oracle, и с бесполезной ошибкой.

Редактировать: Кажется, проблема с версией фреймворка. Я удивлен, что не сталкивался с чем-то подобным раньше.

Вот новая ситуация: Добавлено новое приложение для форм Windows, установленное в Framework 2. Добавлена ​​ссылка на Coherence DLL в GAC (она никогда не появляется в ссылках под сборками, это плохо?) С использованием пути.

Добавлена ​​кнопка со строкой "INamedCache cache;" Вот и все. скомпилировать и запустить. Все отлично работает.

Шаг 2, удалите ссылку на согласованность, добавьте ссылку на мой оригинальный API. Скомпилируйте, все отлично работает. Помните, что API просто выполняет строку кода выше.

Теперь, если я добавлю ссылку на приложение форм Windows в свое приложение WPF и создам Form1, снова все IntelliSense работает, но при компиляции он выдает «тип или пространство имен не найдено».

Снова удалите «кэш INamedCache»; из Form1 в приложении формы (все еще на которое ссылается приложение WPF), и все это снова компилируется.

Таким образом, мое приложение WPF Framework 4 будет использовать мое приложение windows 2 форм Framework (конечно, с добавленной ссылкой Forms 2), но если приложение Form содержит ссылку на библиотеку оракула И объявляет переменную типа интерфейса, объявленного в этой библиотеке , бум, мгновенный сбой.

Оригинальный пост здесь:

Visual Studio 2010.

У меня есть проект приложения Windows WPF и библиотека классов. Библиотека классов ссылается на согласованность Oracle для сборки .NET. В библиотеке классов есть один класс с одним методом, который объявляет переменную типа интерфейса.

В приложении WPF есть кнопка, которая вызывает этот метод. IntelliSense работает отлично.

Когда я пытаюсь скомпилировать, я получаю старую ошибку «Тип или пространство имен с именем 'WhyAreYouNotWorking' не найден" ». У меня есть демо-проект, который работает, я скопировал ссылки из одной в другую без удачи. Я добавил ссылки на любые вспомогательные сборки.

Также

public void Test()
{
    INamedCache cache;
    //CacheFactory.SetCacheFactoryConfig("coherence.xml");
    //CacheFactory.SetCacheConfig("cache-config.xml");
    //CacheFactory.SetPofConfig("pof-config.xml");

    //INamedCache cache = CacheFactory.GetCache("ians-cache");
    //Console.WriteLine(cache.CacheName);
}

Выше вы видите один метод в моем классе lib. Эта библиотека будет успешно скомпилирована со всеми этими комментариями или комментариями. Приложение WPF будет компилироваться, только если я удалю ВСЕ строки.

Таким образом, проблема в том, что приложение WPF не будет компилироваться со ссылкой на библиотеку классов, если библиотека классов содержит код, содержащийся в сборке Coherence Oracle .net.

Я сбит с толку. Немного смущен и сбит с толку:)

Ответы [ 2 ]

0 голосов
/ 17 января 2011

Получено.

Приложение WPF 4.0 по умолчанию установлено на .NET Framework 4 Client Profile.Переключение на «.NET Framework 4» решило все проблемы.

Все еще не до конца понимаю, почему.

0 голосов
/ 17 января 2011

Хммм, возможно, скопировать в выходной каталог в свойствах ссылок?

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