我正在对OpenXmlSdkTools v2.5进行研究,并在 OpenXmlSdkTools.Core.DLL中有一个潜行高峰,并将其保存为带有ILSpy的 ac# Project 。
虽然这个问题是活跃的,但这里是OpenXmlSdkTools.Core.DLL作为一种快速重现我遇到的问题的方法。
当我尝试编译单个类库项目时,我收到两个关于对程序集“System.Xaml”的缺失引用的错误。例如:
'System.Windows.Markup.IQueryAmbient' 类型在未引用的程序集中定义。您必须添加对程序集“System.Xaml”的引用
'System.Windows.Markup.IUriContext' 类型在未引用的程序集中定义。您必须添加对程序集“System.Xaml”的引用
所以我添加了参考。
在那之后,我被困在我希望是最后一个编译错误的地方,我无法弄清楚。
无法将匿名方法转换为类型“System.Delegate”,因为它不是委托类型 C:\TFS\ABC\src\OpenXmlSdkTool.Core\DocumentFormat.OpenXml.Tools\ApplicationExtensions.cs 10
这是代码:
using System;
using System.Windows;
using System.Windows.Threading;
namespace DocumentFormat.OpenXml.Tools
{
public static class ApplicationExtensions
{
public static void DoEvents(this Application application)
{
application.Dispatcher.Invoke(DispatcherPriority.Background, delegate
{
});
}
}
}
我很困惑,它是一个反编译的 DLL,应该很容易再次重新编译。您认为我添加 Xaml 引用会导致此问题吗?如果 Core.DLL 是一个类库项目并且 ILSpy 没有将它包含在 csproj 文件中,为什么我需要添加 Xaml 引用?
我已经在这里查看了所有其他问题,但错误相同,但没有一个真正有帮助。
更新
当您添加 System.Xaml.dll 作为对您的项目的引用时。接口在那里声明。这是文档。
所以现在我在 Catch22 中,如果我添加 Xaml dll,它将解决前 2 个错误,但随后会导致另一个错误。