サードパーティの.dllをカスタムDynamics CRMプラグイン(.dll)にマージして機能を使用できるように、ILMerge
に関連するすべてのガイドに従ってきました。ダイナミックCRMプラグインの参照されたアセンブリを単一の.dllにマージするにはどうすればよいですか?
私はDynamics CRMプラグインを作成しています。このプラグインは.docxドキュメントを取得し、いくつかの情報を入力し、関連するエンティティに注釈(注釈)を追加します。ドキュメントテンプレートを取得し、アノテーションを作成すると問題はありません。だから、私はプラグインが健全であることを知っています(登録して、大丈夫です)。私は私のドキュメントテンプレートを操作するためDocumentFormat.OpenXml
を使用しようとしたら
はしかし、私は、Dynamics CRMのは、エラーを取得:
ファイルまたはアセンブリ「DocumentFormat.OpenXmlをロードできませんでした、バージョン= 2.5.5631.0を.. .....私のプラグインの.dllに 『
DocumentFormat.OpenXml.dll
をマージ」
いくつかの研究を行った後、私は私がするために必要なことがわかった』。
私はMSBuild.ILMerge.Task
をインストール(およびILMerge)にVS2015。ビルドプロセス中に、 "Transitive merge"と "Merged assemblies:パス名 \ my.dll; パス名 \ DocumentFormat.OpenXml.dllという2つのメッセージが表示されます。それは私が必要としたことをしたようだった。しかし、新しい.dllでプラグインを更新すると、同じ "ファイルまたはアセンブリを読み込めませんでした。"というエラーメッセージが表示されます。
参照先のDocumentFormat.OpenXml.dllが実際にターゲットの.dllにマージされることを保証するのに役立つドキュメントが見つかりません。
既存のプラグインをPRTで更新するのではなく、既存のアセンブリを登録解除して、マージされたDLLで登録します –
任意の逆コンパイラを使用して、merged dllの内容を確認して –
@ArunVinothを確認し、 。私はdotPeekを使って.dllがDocumentFormat.OpenXmlアセンブリを含んでいることを確認しました。私はプラグイン登録ツールで.dllの登録を解除して再登録し、それはすべて機能しました!登録を解除し、.dllを再登録するための回答を投稿したい場合は、それをマークします。ありがとう! – Rob