9

私はWindowsサービスを使用しています.copy local = falseであるアセンブリの参照があります. しかし、実行時にロードしようとしていますが、ビジュアルスタジオから実行しているときは正常に動作していますが、インストールしようとすると、cmd で次のエラーが発生します。

An exception occurred while trying to find the installers in the D:\Official\Pro
jects\20131007_ImproveDN\build\debug\application
s\SubscriptionService\SubscriptionService.exe assembly.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the
 requested types. Retrieve the LoaderExceptions property for more information.
Aborting installation for D:\Official\Projects\2
0131007_ImproveDN\build\debug\applications\SubscriptionService\SubscriptionServi
ce.exe.
An exception occurred during the Rollback phase of the System.Configuration.Inst
all.AssemblyInstaller installer.
System.InvalidOperationException: Unable to get installer types in the D:\Offici
al\Projects\\20131007_ImproveDN\build\debug\appli
cations\SubscriptionService\SubscriptionService.exe assembly.
The inner exception System.Reflection.ReflectionTypeLoadException was thrown wit
h the following error message: Unable to load one or more of the requested types
. Retrieve the LoaderExceptions property for more information..
An exception occurred during the Rollback phase of the installation. This except
ion will be ignored and the rollback will continue. However, the machine might n
ot fully revert to its initial state after the rollback is complete.

また、ここで注意すべきことの 1 つは、その .dll のコピー ローカルを true にすると、インストールが正常に行われることです。しかし、インストール前にロードしたくないので、実行時にロードしたいと思います。

前もって感謝します。

4

3 に答える 3

0

また、ここで注意すべきことの 1 つは、その .dll のコピー ローカルを true にすると、インストールが正常に行われることです。しかし、インストール前にロードしたくないので、実行時にロードしたいと思います。

それは問題ではありません。アセンブリはインストール ディレクトリに移動する必要があります。に設定Copy Localしたfalse場合でも、インストールと共にアセンブリを配布する必要があります。

于 2013-10-14T12:44:14.843 に答える
0

同様の問題がありました。私は私のために働いた次のことをしました。

  • まず、FuseLog (Assembly Binding Viewer) を使用して、バインディングが失敗している場所を特定します (説明はこちら

  • ログの取得を開始すると、ログに「無効なアセンブリ プラットフォームまたはファイル内のコンテンツ タイプ (hr = 0x8007000b)」が記録されていることに気付きました。

  • 私のソリューションは3つのプロジェクトで構成されていました。各プロジェクトのビルド プロパティを調べたところ、そのうちの 1 つが "x86" をターゲットにしていることがわかりました。「Any CPU」に変更して再コンパイルしたところ、問題は解決しました。
于 2014-08-25T14:46:33.333 に答える