Application.Current.Shutdown();在一个未被引用的程序集中定义。

13

我遇到了错误:

错误1:类型“System.Windows.Markup.IQueryAmbient”在未被引用的程序集中定义。您必须向程序集“System.Xaml,版本=4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”添加引用。

当执行以下操作时:

public void ExitApplication()
{
    Application.Current.Shutdown();
}
该项目的目标是 .NET 4.0,我的 Visual Studio 是 2010 版本,我尝试添加 using System.Windows.Markup; 但没有成功,并且添加 using System.Xaml; 时发现 Xaml 在命名空间 System 中不存在。
我该怎么做才能修复这个问题?

如果您注释掉 ExitApplication(),那么这个问题就不存在了吗? - DHN
请查看应用程序。它位于PresentationFramework(在PresentationFramework.dll中)C:\Program Files(x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\PresentationFramework.dll。 - Dustin Kingen
@DHN 是的,我的应用程序运行良好。但是如果我关闭应用程序,后台线程会继续运行,因此它从未真正关闭。这就是为什么我正在尝试使用这个的原因。 - Joetjah
1
重要的教训是 using 指令和引用是完全独立的概念。 - Damien_The_Unbeliever
同意,即使它们是相当标准的 Windows 组件。 - Joetjah
后台线程在正常退出应用程序时总是会死亡。显然,您的某些前台线程正在运行。在尝试任何类似于“Application.Shutdown”或“Environment.Exit”的操作之前,请找出如何优雅地终止它们以及原因。 - Luaan
3个回答

25

好的,当你将 System.Xaml.dll 添加为项目的引用时,问题应该已经解决了。界面在那里声明。这是文档


哦,我必须添加引用。我以为这之前可以工作,所以我甚至没有看过那个。谢谢! - Joetjah

8

将System.Xaml.dll添加到项目引用中。


5

您需要在主应用程序项目中添加对 System.Xaml引用。不需要在您的代码中使用 Using System.Xaml


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接