2009-05-19 81 views
2

Visual Studio 2005を使用してWinFormsアプリケーションを構築しました。これには、レポートを実行して表示するVS2005に付属するCrystalレポートが含まれています。私のインストーラは、CrystalDecisionsRedist2005_x86マージモジュールを使用してCrystalをインストールします。これは、Vista上でのインストールを試みるまで、Crystalのdllを登録する際にエラーが発生するまではうまくいきます。 hereherehereなどのフォーラムで報告されているように、これはよく知られている問題だと思われますが、これらのものと同様に、私が見つけることができる一般的な解決策はなく、 (stackoverflowが必要な問題の完全な例)。VS2005のCrystal ReportsをVistaに再配布する方法は?

VS2005アプリケーションのCrystal ReportsをVistaにどのように配備しますか?

詳細:\プログラムファイル\共通 ファイル\ビジネス:

アクティベーションコンテキストの生成は、C」のため 失敗しました。イベントログに記録

Vistaのエラーは、次のようにペアで来ます オブジェクト\ 2.7 \ bin \ ExportModeller.dll " 依存アセンブリ Microsoft.VC80.ATL、processorArchictecture =" x86 "....が見つかりませんでした。詳細な診断については sxstrace.exeを使用してください。

その後、

製品:エラー1904 モジュール "C:\プログラムファイル\共通 ファイル\ビジネス オブジェクトExportModeller.dll \ 2.7 \ binに\" は登録に失敗しました。 HRESULT -217010895。サポート担当者に連絡してください。

など様々な他のdllである。

私のインストーラにはATL用のマージモジュールが含まれていますが、最初に適用されないと思います。 Wise Installer Editionには、最初にどのマージモジュールが適用されるかを指定する方法はありません。

代わりにCrystal Reports X1マージモジュールをインストールしようとしましたが、逆の互換性があることを願っています。しかし、インストールがうまくいくうちに、レポートを実行しようとすると例外が発生します。適切なアセンブリが見つからないため、参照エラーです。それほど驚くべきことではない。

私もCrystalReports10_NET_EmbeddedReporting.msmは、ビジネスオブジェから利用できるモジュールは、ソフトウェアのダウンロードサイトをサポートマージ使用してみました(ファイルが「CR 10 .NET展開-Enためのマージモジュール」と題されている)

私は続けますよさまざまなスレッドから試してみるべきもののリストに載っていますが、誰かが「答え」を持っていればそれを愛するでしょう。

ありがとうございました。

現在のソリューション

私の現在の方法/回避策は私のMSIをインストールする前に、Vistaマシン上でMicrosoft Visual C++ 2005 SP1 Redistributable Package (x86)をインストールすることです。これは私の通常のMSIがVista上で正常に動作することを可能にしますが、私はただ1つのexeを配布したいので理想的ではありません。

私はSAP/CrystalReportsフォーラムhereでもこの問題を提起しました。

ADAPT00738607

説明: は、カスタマイズされたセットアップをインストールし、この問題は存在しており、現在解決されていることの.NET SP1ノートのCR用EVEN MORE INFO

release notes

プロジェクト とCrystal Reports for Visual Studio 2005マージモジュール(.msm) Vi複数のCOMコンポーネントが に登録できません。例えば"モジュールC:\ Program Files \ Common Files \ Business Objects \ 2.7 \ bin \ ExportModeller.dll 登録に失敗しました。HRESULT -2147010895。サポート担当者に連絡してください。 setup.exe を再度実行して修復を選択すると、 エラーなしで インストールが実行され、そのコンポーネントは に登録できます。

新しい動作この問題 はしかし

を解決され、私はまだすべての更新マージモジュールを発見していないので、この問題は解決されているところ私は明確ではありませんよ。 C++パッケージを個別にインストールする必要がない場合は、インストールを修復するために推奨される回避策を考慮する必要があります。

答えて

1

今日、この問題が発生しました。 msiファイルに前提条件を簡単にインストールする必要があるようです。

グーグリングでは、問題を説明するblogと表示されます。これは、次の解決策を示しています:

  1. はVC 8.0ランタイムファイルのプライベートなコピーをインストールし、セットアップチェイナ
  2. を経由して再頒布可能パッケージを使用してVC 8.0ランタイムをインストールします。
  3. グローバルアセンブリに依存しないようにバイナリをビルドするときにVC 8.0ランタイムに静的にリンクする
  4. InstallFinalizeの後にスケジュールされたカスタムアクションまたはカスタムアクションを使用します。
  5. 自己登録情報を標準のMSIオーサリングに変換し、自己登録を使用して停止します。

単一のMSIファイルが必要だったため、オプション1を使用できませんでした。
オプション3または5は、サードパーティ製のライブラリであるため、使用できませんでした。
私はファイルの私的なコピーを扱いたくなかったので、私はオプション2を使いたくなかった。

これはオプション4を残しました。これは最善の方法ではないようですが、それは私にとっては効果的でした。私はCrystalDecisionsRedist2005_x86マージモジュール(InstallShieldを使用)を編集し、SelfRegテーブルのエントリを削除しました。その後、削除したファイルを登録するためにCommitでスケジュールされたカスタムアクションを作成しました。

+0

ありがとう、これは役に立ちます。 – Rory

関連する問題