VS2010 c# WPF应用程序:新的WPF项目不能从另一个项目调用静态类方法

本文关键字:WPF 项目 调用 另一个 静态 静态类 类方法 不能 应用程序 新的 VS2010 | 更新日期: 2023-09-27 18:03:11

在我目前的个人项目中,我有一个Core项目,一个DependencyResolution项目和一个UI项目(WPF应用程序)。在UI项目中,我试图调用MainWindow.xaml.csApp.xaml.cs中的DependencyResolution中的DependencyRegistrar类。UI项目引用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

只要在UI的任何地方包含using语句,就会产生该错误。

using System.Windows;
using DMTools.InitiativeTracker.DependencyResolution;
namespace DMTools.InitiativeTracker.UI
{
    public partial class App : Application
    { }
}

我可以引用核心项目(using DMTools.InitiativeTracker.Core)和一切编译正常。此外,我可以在IntegrationTests项目(另一个类库)中引用DependencyRegistrar,它编译得很好。

你可以在这里找到完整的源代码。如果您需要更多信息,请随时请求特定的片段。

编辑:我已经通过ReSharper和典型的Visual Studio方式添加了一个对DependencyRegistrar的程序集引用。这两种情况都没有解决问题。对于另一个评论:当我添加对Core静态类(IoC)的引用时,XAML保持不变,但它编译得很好。

VS2010 c# WPF应用程序:新的WPF项目不能从另一个项目调用静态类方法

Tigran的评论解开了这个谜。在UI项目中,我将Target framework从"。. NET Framework 4客户端配置文件" to "。. NET Framework 4"并且一切正常。

我能想到的唯一一件事是为什么这是一个问题与DependencyResolution而不是Core是,前者引用第三方实用程序(即Ninject)有问题的客户端配置文件,但我只是猜测在这里。