.msiファイルを作成するセットアッププログラムに取り組んでいます。C#で記述されたCustomActionプログラムが関連付けられています。このCustomActionプログラムで作成された3つのCOMオブジェクト参照があり、それらが機能するために必要です。以下のとおりです。
- アクティブなDSIIS名前空間の提供(C:\ Windows \ System32 \ inetsrv \ adsiis.dll)
- Windowsスクリプトホストオブジェクトモデル(C:\ Windows \ System32 \ wshom.ocx)
- NetFwTypeLib(C:\ Windows \ System32 \ FirewallAPI.dll)
追加情報として、プログラムでこれらのDLLを使用するタスクは次のとおりです。
- 特定のファイルタイプのMIME設定を設定します。
- フォルダへのデスクトップショートカットを作成します。
- プログラムをファイアウォール例外として登録するには
。
さて、これが私の問題です。C#プログラムを再構築し、Visual Studio内からCustomActionプログラムを実行すると、正常に動作し、上記の3つのタスクを魅力のように実行できます。ただし、実際に.msiをビルドして実行し、システムにプログラムをインストールしようとすると、エラーが発生します。私は日本語のOSを使用しているので、日本語でエラーが発生するので、エラーメッセージをできるだけ英語に翻訳しようと思います。エラーは次のようなものです。
*
ファイルまたはアセンブリ'Interop.IISOle、バージョン= 1.0.0.0、カルチャ=ニュートラル、PublicKeyToken = null'、またはその依存関係の1つをロードできませんでした。指定されたファイルが見つかりません。
*
この特定のエラーメッセージは、最初のdll(adsiis.dll)に関連しているために表示されます。これは、IISOle名前空間が含まれているためです。同様に、プログラムから参照した3つのCOMオブジェクトすべてに関連するエラーメッセージが表示されます。これから理解できるのは、どういうわけか、このコードが.msiファイル内にあると、適切なCOMオブジェクトが見つからないということです。CustomActionのコーディングに使用したのと同じマシンにプログラムをインストールしようとすると、セットアップで同じエラーが発生するため、これが発生する理由は本当に混乱しています。おかしなことに、VisualStudioInterfaceを使用しても問題なく実行されます。これで私を助けてください。前もって感謝します!
私はWindowsVistaBusinessに取り組んでいますが、WindowsServer2003からWindows7までのさまざまなWindowsOSにインストールできるようにセットアップが必要です。