4

Windows 7のFIRSTインストールでmsflxgrd.ocxファイルを展開しないDotNet 1.1アプリケーション(Visual Studio 2003)のレガシーインストールがあります。 MSIをアンインストールしてから同じMSIを再度実行すると(同じラップトップにインストールする)、msflxgrd.ocxファイルがデプロイされます。最初は私はregsvr32の問題だと思っていましたが、登録するファイルがないので、それは配備の問題のようです。私はマシンに対して管理者権限を持っています。Windows 7上でVisual Studio 2003で生成されたMSIからOCXファイルが展開されない

私はMSIログhereへのリンクを持っている:

は助けることができる誰か?

ありがとうございます!

+0

あなたのログを読み込もうとしましたが、エラーが見つかりませんでした。あなたは私を少し混乱させました。 COMサーバーであるOCXファイルがありますが、登録するファイルがないとします。 OCXファイルは常に登録する必要があります。 ?? –

+0

Win7SP1のSYSWOW64ディレクトリにこのDLLがあるようです。私はそれをInstallShieldに引っ張って、COMデータの抽出操作を行いましたが、確かにCOMデータがあります。 ProgIDはMSFlexGridLib.MSFlexGrid.1で、説明はMicrosoft FlexGrid Control、バージョン6.0です。 –

+0

申し訳ありませんが、私は明確にしようとしましょう。クリーンマシンでインストールを実行すると、ocxファイルはMSIからファイルシステムに展開されません。私はHD全体を検索することができますが、そこにはありません。その他のファイルはすべて存在します。アンインストールしてSAME MSIをもう一度実行すると、OCXが不思議に表示され、すべてがうまくいくように見えます。それは役に立ちますか? – Sam

答えて

0

私の以前の回答は、何がうまくいかないかを説明することでした。この回答は、それを修正する方法になります。

InstallShieldは、バージョン6.0.84.18を含むこのコントロールのマージモジュールを配布します。ただし、このマージモジュールは古く、数年前にMicrosoftからリリースされたセキュリティ更新プログラムは含まれていないようです。スレッドを参照してください:

マイク・マリノは、マイクロソフトから更新マージモジュールを取得しようとしましたが、言われたスレッドで

Updated Merge Modules for MS08-070 Security Bulletin

マイクロソフトはこれらのためにマージモジュール提供することはありません。ユーザー は、ユーザーが独自のMSMを作成するか、または ファイルを独自のMSIに含めることをお勧めします。

ここで私は何をしますか? msflxgrd.dllがMS08-070(6.1.98.14)以降の最新バージョンであることを確認してください。インストーラのSystemFolderディレクトリに作成します。 Permanenet = trueとマークします。Register属性をvsdraCOMに設定し、SharedLegacyFile = trueを設定します。

インストーラを再構築して、アップグレードシナリオをもう一度テストしてください。あなたは行かなくてはなりません。

+0

ありがとうございました。これはまさにそれでした。私は何が起こったのかというと、Windows 7マシンにMSIを構築しなければならなかったし、XPでビルドするときに持っていた古いバージョンのOCXがあったため、インストールがうんざりしてしまった。私が最新のバージョンを持っていたことを確認することは、トリックを行い、意味があります。ありがとう! – Sam

0

ログ1に表示されているように、マシンはあなたが思ったほどきれいではありません。 FindRelatedProductsは、製品の以前のインストールを検出し、新しいバージョンをインストールする前にRemoveExistingProductsにアンインストールするよう指示しています。

MSIがファイルをインストールする必要はないと思っても、アップグレードする製品を削除するとファイルがアンインストールされ、ファイルがインストールされなくなるというコンポーネントルールに違反している状況があります。アンインストールと再インストールを行うことで、2つのステップに分けて、2回目のインストールでファイルの必要性が評価されたときにyesとなり、インストールされます。

これはOCX COMサーバーであるという事実は単なる偶然であり、本当の問題にはあまり関係しません。

私はMSIが既にインストールされている必要があり、特定の修復を行うためにMSIのアップグレードが必要です。


アクション開始14:55:44:FindRelatedProducts。 MSI(A0:18)[14:55:44:119]:PROPERTY CHANGE:PREVIOUSVERSIONSINSTALLEDプロパティを追加しています。その値は '{08D8BF6E-E399-4B8A-8B8D-7DFF68F81131}'です。 MSI(A0:18)[14:55:44:119]:スキップアクション:ERRCA_CANCELNEWERVERSION(条件は偽) MSI(A0:18)[14:55:44:119]:Doingアクション:VSDCA​​_VsdLaunchConditions アクションが終了しました14:55:44:FindRelatedProducts。戻り値1

+0

非常に興味深い。私は「きれいな」マシンを見て、ファイルシステムまたはレジスタのいずれかにmsflxgrd.ocxファイルの証拠を見つけることができませんでした。他にどこが見えますか? – Sam

+0

私が見るところでは、そのファイルコンポーネントは "C:\ Program Files(x86)\ BainApps \ HCPD2005"という場所に登録されています。 MSIがFileRemove操作をスケジュールしなかったので、ファイルが実際にそこになかったことがわかります。しかし、その場所からのコンポーネントの登録を解除しました(COMおよびMSIメタベースの両方)。だから私には、製品がそこにインストールされていて何かがファイルを削除してしまったように見えます。 –

+0

私はInstallShieldを使用し、このコントロールを展開するマージモジュールを提供します。バージョン6.0.84.18が含まれています。これは展開しようとしているものと一致しますか? –

関連する問題