2017-02-14 62 views
0

誰かが私の心を失うため、これで私を助けてください。assbmelyでインストーラの種類を取得できません。 - >要求されたタイプの1つまたは複数をロードできません

私はC#/ Visual Studio 2015/.Net 4.6.1でWindowsサービスを作成しました。次に、組み込みテンプレートを使用して、簡単なインストーラーを作成しました。カスタムアクション、ProjectInstallerクラス - すべて動作します。

私は複数のコンピュータ上でこのインストーラを実行し、すべては私が特定のクライアントのWindows Server 2012の上でそれをインストールしようとするまで、よく働いた、と突然、私はこれまでのところ

Unable to get installer types in the [xxx].exe assbmely. --> Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. 

を取得し、私が試したことはあります:

  1. インストール済み.Net 4.6.1(以前はインストールされていませんでした)。

  2. すべてのサービスの依存関係をCopyLocal = falseに切り替えてから、もう一度元に戻します。

  3. Ran Fusionログとバインディングエラーはまったくありません。

  4. 完全ロギングを実行しても、同じエラーが再び表示される完全に役に立たないログが得られます。

  5. ProjectInstallerクラスのすべてのコードパスにtry/catchを配置します。助け無し。

これは私をCRAZYにしています。何が起こっているのかを記録する方法がない場合は、どのようなdll/typeがわかっているのですか?

誰でも助けてください。

答えて

2

これはカスタムアクションアセンブリです。サービスです。必要なタイプはインストーラアセンブリから取得されます。このアセンブリは、リフレクションを使用してロードされインスタンス化され、インストーラクラスを検出します。 Fusionログは、リフレクションによる同じ理由、作成およびインスタンス化でエラーを表示しません。内部的にはマネージドコードインストーラクラスのWindowsインストーラサポートはありません。そのため、C++シムDllがあります。これは、あなたの代わりにこのすべてを行います。このブラックボックスDllの診断はありません。

ヒント:

  1. あなたのセットアップのアーキテクチャ(64/32)あなたのアセンブリがAnyCpu、64、32ビットなどである場合、および一部のWindowsサーバが行う(TargetPlatform)を投稿できませんでしたデフォルトで32ビットサブシステムをインストールしないでください.Wo64はオプションです。したがって、32ビットのものはまったくサポートされません。このような場合は、64ビットのインストールを構築し、アセンブリを64ビットにする必要があります。

  2. 使用できない別のアセンブリに依存している可能性があります。これは起こりそうもないようですが、心に留めておいてください。

  3. この問題は修正されていると考えられますが、これは管理されたコードのカスタムアクションで何が起こり、以前に64ビットシステムで失敗したのかを知ることができます。ここでも、セットアップのTargetPlatformと、インストールがx86またはx64であるかどうか、また、Server 2016にWoW64がインストールされているかどうかが表示されます。

https://blogs.msdn.microsoft.com/heaths/2006/02/01/64-bit-managed-custom-actions-with-visual-studio/

とにかくこれらは、解決に向けてあなたを指している可能性があります。ところで、「本当のインストーラ」は、その用語を使用できる場合、Windows Installerにこれを行うためのサポートが組み込まれているため、マネージコードを使用してサービスをインストールしないでください。

+0

詳細な返信をありがとうございます。私のプロジェクトはx86でした。私はx64をターゲットにするために再構築しただけです(もちろんOrcaを通過しなければなりませんでした)。だから私はこれをまっすぐにしましょう...いくつかのWindowsサーバーは単純に32ビットサブシステムをインストールしません - それで、私の32ビットアプリケーションはそれを見つけることができないので、この32ビットシムDLLを実行できませんか? – user884248

+0

そして私が十分にはっきりしていなかった場合には、どうもありがとう!!!!!! – user884248

関連する問題