2011-04-07 16 views
1

「ファイルまたはアセンブリをロードできませんでした。」私は他人のために働いているものだけを、明らかに多くの人が同様に持っていた問題を抱えているが、まだ私のために働いていません。ここでの設定は以下のとおりです。すべての.NET 2.0を対象に5つのプロジェクトとのVisual Studio 2008のセットアッププロジェクトがエラーをインストールします。

VS2008ソリューション、:

  1. をDLL Aは、何のプロジェクトは、
  2. DLLのBを参照していない参照が
  3. をDLLのWindowsは、Appフォーム、参照DLL B
  4. Windowsサービス、参照するDLLのB
  5. セットアッププロジェクト
私が起こることををしたい 何3210は

DLL AおよびDLL BがGACにインストールされますが、私はインストール時にエラーを取得しています:私はherehereといくつかの他のサイトを読んだから

Error 1001. Could not load file or assembly 'DLL_B', version 1.0.0.1, Culture=neutral, PublicKeyToken=5e297270603814f4' or one of its dependencies. The system could not find the file specified.

、私は順不同に次のことを行っている:

  • 私のプロジェクトで再参照すべて
  • ではなく、「プライマリ出力」を使用してのセットアッププロジェクト(... DLL Aに手動でコンパイルしたEXEファイルを追加しましたし、 DLL Bは 'Detec >起動条件 - - > 2.0のセットアッププロジェクトで
  • への.NET Frameworkを設定 - ファイルシステム> - >要求された依存関係をグローバルアセンブリキャッシュフォルダ
  • にインストールすることが検出されたセットアッププロジェクトでテッド依存関係)

私はおそらく何かが不足しています。誰でも私がそれが何であるか把握するのを助けることができるか?

ありがとうございます。

+0

また、ソリューションエクスプローラ - >セットアッププロジェクト - >検出された依存関係 - > DLL AおよびDLL B - > SourcePathがプロジェクト出力ディレクトリ(bin \ Release)を示しています –

+0

エラーメッセージに*空の*ファイル名が表示されます。それは良いことではありません。 –

+0

私は< >タグを使用していました。編集されました。 –

答えて

1

あなたのWindowsサービスをインストールして起動します。installutilカスタムアクションを使用して、このWindowsサービスは、GACにある依存関係を持っていることをしているように聞こえます。これは、Winodowsインストーラの既知の制限で、WinSXSとGACのファイルは、カスタムアクションが実行された後のコミットフェーズまでインストールされません(遅延フェーズ)

まず、InstallUtilのカスタムアクションは非常に脆弱で、これを行うためのより良い方法があるということです。第2に、上記の問題を回避することはできません。ただし、a)サービスを自動に設定して再起動するか、b)アセンブリをGACにインストールしない。

+0

私がやりたいことを達成するためのより良い方法の正しい方向を教えてください。 –

+0

ニース!それは間違いなくそれだった!私は、コードを適用したGoogleグループの素晴らしい投稿を見つけました。それは、すぐに使えます:https://groups.google.com/group/microsoft.public.dotnet.languages.csharp/browse_thread/thread/4d45e9ea5471cba4/4519371a77ed4a74 ?hl = en&pli = 1 –

関連する問題