私はOpenXmlSdkTools v2.5の調査を行っており、OpenXmlSdkTools.Core.DLL内でスニーク ピークを取得し、それを ac# Project with ILSpyとして保存しました。
この質問はアクティブですが、発生した問題をすばやく再現する方法としてOpenXmlSdkTools.Core.DLLがあります。
単一のクラス ライブラリ プロジェクトをコンパイルしようとすると、アセンブリ 'System.Xaml' への参照が見つからないという 2 つのエラーが発生します。例えば:
タイプ 'System.Windows.Markup.IQueryAmbient' は、参照されていないアセンブリで定義されています。アセンブリ 'System.Xaml への参照を追加する必要があります
タイプ 'System.Windows.Markup.IUriContext' は、参照されていないアセンブリで定義されています。アセンブリ 'System.Xaml への参照を追加する必要があります
だから私は参照を追加しました。
その後、私は最後のコンパイルエラーであると思っていることに行き詰まっており、それを理解できません。
デリゲート型 C:\TFS\ABC\src\OpenXmlSdkTool.Core\DocumentFormat.OpenXml.Tools\ApplicationExtensions.cs 10 ではないため、匿名メソッドを「System.Delegate」型に変換できません
コードは次のとおりです。
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 を追加する場合。インターフェイスはそこで宣言されています。これがドキュメントです。
Xaml dll を追加すると、最初の 2 つのエラーは解決されますが、この他のエラーが発生します。