2017-10-11 16 views
1

サードパーティの.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にマージされることを保証するのに役立つドキュメントが見つかりません。

+1

既存のプラグインをPRTで更新するのではなく、既存のアセンブリを登録解除して、マージされたDLLで登録します –

+1

任意の逆コンパイラを使用して、merged dllの内容を確認して –

+1

@ArunVinothを確認し、 。私はdotPeekを使って.dllがDocumentFormat.OpenXmlアセンブリを含んでいることを確認しました。私はプラグイン登録ツールで.dllの登録を解除して再登録し、それはすべて機能しました!登録を解除し、.dllを再登録するための回答を投稿したい場合は、それをマークします。ありがとう! – Rob

答えて

1

参照先のDocumentFormat.OpenXml.dllが実際にターゲットの.dllにマージされるのをさらに確実にするドキュメントが見つかりません。

任意の逆コンパイラ(ex:dotPeek)を使用して、マージされたdll &の内容を確認できます。

プラグインを新しい.dllで更新すると、同じ「ファイルまたはアセンブリを読み込めませんでした」というエラーメッセージが表示されます。

PRTで既存のプラグインを更新する代わりに、既存の&の登録を、マージされたdllで新しいアセンブリを登録解除します。

関連する問題