参照されたアセンブリを VS2005/Biztalk 2006 で「リソース」として自動的に展開します。
-
22-08-2019 - |
質問
2 つのプロジェクト ソリューションがあります。1 つのプロジェクトにはスキーマと BizTalk オーケストレーションが含まれ、もう 1 つのプロジェクトにはオーケストレーションから参照されて実際の作業を実行する DLL が含まれています (共有コードなので、単純にBizTalk アセンブリ)。2 番目のアセンブリは BizTalk アセンブリからの参照として追加されており、オーケストレーションから #2 のメソッドを問題なく参照できます。
ただし、VS -> BizTalk から展開する場合、リソース アセンブリは使用されず、BizTalk アセンブリが展開されるだけです。オーケストレーションをトリガーしようとすると、参照されたアセンブリを読み込めなかったというエラーが表示されますが、GAC と BizTalk アプリの "リソース" リストに追加すると、問題なく動作します。
このアセンブリに BizTalk アセンブリとともに展開する必要があるものとしてフラグを立てるにはどうすればよいですか?どこかのリファレンスの設定が足りないだけなのでしょうか?
解決
バッチファイルに次の文を置き、VSコマンドプロンプトから実行します。
BTSTask AddResource -Source:.\Assemblies\Schemas.DLL
-ApplicationName:MyApp -Type:System.BizTalk:BizTalkAssembly
-Options:GacOnImport,GacOnInstall -Overwrite
BTSTask AddResource -Source:.\Assemblies\Orchestrations.DLL
-ApplicationName:MyApp -Type:System.BizTalk:BizTalkAssembly
-Options:GacOnImport,GacOnInstall -Overwrite
BTSTask AddResource -Source:.\Assemblies\SharedLib.DLL
-ApplicationName:MyApp -Type:System.BizTalk:Assembly
-Options:GacOnImport,GacOnInstall -Overwrite
BTSTask ExportApp -ApplicationName:MyApp -Package:MyApp.msi
あなたがインポートする必要があるだろう終わりにMSIを入手! これはあなたの問題に対処します。
他のヒント
BizTalk アプリケーションにリソースを自動的に追加することで解決策があるとは思えません。
私は通常、スクリプトを使用して BizTalk に展開するため、その一部としてリソースを追加します (ただし、公平を期すために、通常は 2 つ以上のアセンブリがあります)。BTSTask は、これを行うために使用できる BizTalk コマンド ライン ユーティリティです (または、MSBuild を使用している場合は、「SDC タスク"