- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非托管应用程序,它的某些用户界面使用 WPF 程序集。
最初我遇到了如下异常:
System.IO.FileNotFoundException was unhandled Message: Could not loadfile or assembly 'PresentationFramework ...
(与 Changed framework version results in: Could not load file or assembly PresentationFramework? 的原因不同)。
PresentationFramework
是我的程序集的引用。
我通过添加一行 C# 代码来解决这个问题,该代码似乎强制或欺骗编译器/运行时加载 DLL:
// Refers to an arbitrary enum in PresentationFramework.Classic.dll
var dummy = Microsoft.Windows.Themes.ClassicBorderStyle.None;
然后我在运行时没有遇到异常。
否则,对该 DLL 中任何内容的唯一引用是在 XAML 中。具体来说:
<ResourceDictionary Source="pack://application:,,,/PresentationFramework.Classic;component/themes/Classic.xaml"/>
但显然这个 XAML 引用不足以让 DLL 在运行时正确加载。
<小时/>这个“虚拟”解决方案很好,因为它确实有效,但我不明白为什么这是必要的,它让我觉得我错过了一些更重要的东西。
这是正确的解决方法吗?首先有必要这样做的原因是什么?
最佳答案
XAML 和 C# 是两种不同的语言,具有单独的解析器和编译器。事实上,早期的调试器对 XAML 运行时错误的支持“不存在”。如果您遇到 XAML 编译器错误怎么办? C# 编译器将仅使用最后一个有效的 XAML 编译。
虽然您可能永远不会使用它,但完全有可能在运行时动态加载 XAML 设计:https://blogs.msmvps.com/bsonnino/2016/07/21/loading-xaml-dynamically-part-1-loading-views-dynamically/
此时编译器不能依赖在编译时 XAML 中编写的内容。
XAML 中的命名空间?它们只是将 .NET 类纳入 XAML 解析器的范围。它们对于代码的 C# 部分并没有那么重要。
关于c# - 为什么我需要 'dummy' 行代码才能加载PresentationFramework?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60172678/
为什么 System.Windows.Clipboard(PresentationCore.dll) 对System.Windows.Thickness (PresentationFramework.
当我将 WPF 应用程序部署到另一个用户的计算机时,出现以下异常: An unhandled exception of type 'System.Windows.Markup.XamlParseExc
我写的一个应用程序崩溃了,在事件查看器中我发现了以下内容: Faulting module name: PresentationFramework.ni.dll, version: 4.0.30319
下面是一个最小的例子,我不可能再减少它了。 我在 ViewModel 中创建一个实时过滤的 CollectionView,如下所示: using System.Collections.Generic;
我编写的一个应用程序崩溃了,在事件查看器中我发现了以下内容: Faulting module name: PresentationFramework.ni.dll, version: 4.0.3031
我正在尝试在 Visual Studio 2013 中加载解决方案,但我收到了这条消息: 当我单击“确定”时,它会显示另一条错误消息: Attempted re-targeting of the pr
我遇到了奇怪的编译时错误: 项目文件必须在引用列表中包含 .NET Framework 程序集“WindowsBase、PresentationCore、PresentationFramework”。
实际上很难在网上搜索类似的案例。所以我决定在这里问一下。 在我的测试项目中,我的 SUT 引用了 PresentationFramework来自 Assembly引用标签,目标框架是.NET Fram
我正在与一个奇怪的 NullReferenceException 作斗争,它显然是从 GetNameCore() 触发的ItemAutomationPeer的功能类(class)。 异常的详细信息如下
我正在开发WPF应用程序,该应用程序首先针对3.0框架。当我尝试使其在 4.0 上运行时,出现以下异常。 System.IO.FileNotFoundException was unhandled M
我想将 PresentationFramework.Aero 主题添加到我的 ResourceDictionary。ResourceDictionary 本身位于一个名为 ProjectResourc
这可能是在黑暗中尝试,但是,我将如何在 PresentationFramework.dll 的以下内部静态方法中设置断点? System.Windows.Documents.TextEditorTyp
我想编写一个快速的 WPF 应用程序,但我发现它在 Windows 7 上看起来与 Windows 10 上完全不同。所有的填充和边距都乱七八糟。我决定添加默认的 PresentationFramew
我最近完成了我使用 Windows 8 开发的第一个 WPF 应用程序。它在我的机器上运行良好。我的一个 friend 也在他的 Windows 8 机器上的 visual studio 中运行了它,
好吧,我有一个奇怪的错误...... 这很好用: private void radioButtonNormalPoint_Checked(object sender, RoutedEventArgs
应用程序无法加载任何 xaml。也不创建空窗口“var abc = new Window1();” 错误消息仍然相同: PresentationFramework.dll 中发生“System.IO.
我在 ASP.NET 应用程序中看到难以理解的编译错误。 Project file must include the .NET Framework assembly 'WindowsBase, Pre
我刚刚从 RedGate 下载了最新版本的 Reflector,但无法反编译某些核心 WPF 程序集中的类,例如 PresentationCore 和 PresentationFramework。 这
A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in Presentation
我在 C# 上使用 WPF 作为下面的代码 //My GUI Code here 当我运行应用程序时,它会抛出以下异常
我是一名优秀的程序员,十分优秀!