VS2010 C # Приложение WPF: новый проект WPF не может вызвать метод статического класса из другого проекта - PullRequest
1 голос
/ 24 июля 2011

В моем текущем личном проекте у меня есть основной проект, проект DependencyResolution и проект пользовательского интерфейса (приложение WPF). В проекте пользовательского интерфейса я попытался вызвать класс DependencyRegistrar, который находится в DependencyResolution как в MainWindow.xaml.cs, так и App.xaml.cs. Кажется, есть проблема с проектом пользовательского интерфейса, ссылающимся на проект DependencyResolution, так как эта ошибка компилятора всегда возникает:

The type or namespace name 'DependencyResolution' does not exist in the namespace
'DMTools.InitiativeTracker' (are you missing an assembly reference?)    
D:\Dev\InitiativeTracker\src\UI\App.xaml.cs 2 33 UI

Просто включение оператора using в любом месте пользовательского интерфейса приводит к этой ошибке.

using System.Windows;
using DMTools.InitiativeTracker.DependencyResolution;

namespace DMTools.InitiativeTracker.UI
{
    public partial class App : Application
    { }
}

Я могу сослаться на основной проект (using DMTools.InitiativeTracker.Core), и все будет хорошо. Кроме того, я могу сделать ссылку на DependencyRegistrar в проекте IntegrationTests (другая библиотека классов), и он хорошо компилируется.

Вы можете найти полный источник здесь . Не стесняйтесь запрашивать конкретные фрагменты, если вам нужна дополнительная информация.

EDIT: Я добавил ссылку на сборку в DependencyRegistrar как через ReSharper, так и обычным способом Visual Studio. Оба случая не решили проблему. К другому комментарию: Когда я добавляю ссылку на статический класс Core (IoC), XAML остается неизменным, но прекрасно компилируется.

1 Ответ

0 голосов
/ 24 июля 2011

Комментарий Тиграна разгадал тайну.В проекте пользовательского интерфейса я изменил Target framework с ".NET Framework 4 Client Profile" на ".NET Framework 4", и все работает правильно.

Единственное, что я могу придумать, почему это былопроблема с DependencyResolution, а не с Core, заключается в том, что первая делает ссылки на сторонние утилиты (например, Ninject), которые имеют проблемы с Client Profile, но я только догадываюсь здесь.

...