17

MSI のインストールを試みた結果、恐ろしい問題が発生しました。

MSI (c) (98:B0) [18:01:22:818]: Invoking remote custom action. DLL: C:\DOCUME~1\sspencer\LOCALS~1\Temp\1\MSI19.tmp, Entrypoint: CheckFX
MSI (c) (98:FC) [18:01:22:833]: Cloaking enabled.
MSI (c) (98:FC) [18:01:22:833]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (98:FC) [18:01:22:833]: Connected to service for CA interface.
Action ended 18:01:22: DIRCA_CheckFX. Return value 3.

かなり掘り下げた後、これは実際には DLL が完全にロードできなかったことを示しています。CA サーバーは接続できず、DLL エントリ ポイントにヒットし始めました。

orca と 7zip を使用して、デプロイメント プロジェクトのビルド時に Visual Studio によって挿入される DIRCA_CheckFX のカスタム アクションを抽出しました。DLL を取得し、ホスト システム (Server 2003 R2) で Dependency Walker を実行すると、次のエラーが発生しました。

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.

VS 2010 コンパイラを使用してシステムを再コンパイルし、DLL を抽出して依存関係ウォーカーを実行しましたが、同じエラーは発生しませんでした。つまり、VS 2010 のコンパイルは機能しますが、含まれている DLL がターゲット環境にロードされないため、VS 2013 のコンパイルは失敗します。

私の質問は、Dependency Walker によって報告されたエラーをトラブルシューティングするために、欠落している DLL をトラブルシューティングする方法です。

4

4 に答える 4

54

有効なファイル「dpca.dll」を取得できる VS 2010 をインストールする必要があります。

  1. Visual Studio 2013 を閉じる
  2. ファイルを replace dpca.dllfrom C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deploymentto にコピーしますC:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\VSI\bin
  3. プロジェクトを開く
  4. 再構築
于 2014-09-25T13:26:08.047 に答える
1

.vdproj 復活のプレビューでは、Windows XP または Server 2003 をサポートしない DLL が使用されています。Microsoft は、そのバグを修正した可能性のある更新プログラムを投稿しました。

于 2014-06-01T18:30:47.507 に答える
-2

Visual Studio 展開プロジェクトは非常にひどいものだったので、Microsoft は Visual Studio 2012 からそれらを削除しました。MSI を理解している Microsoft の賢い人たちは建物を去り、残った人々は開発者に戻ってくるように求めました。

本当に賢い人の一人がツイートで完璧にまとめました:

vdproj の復活: ヘッドショット、人、またはウォーカーとして戻ってきます。

感想記事を書きました: Visual Studio Installer Resurrection

それでは、今回はツールがどのように失敗するかについて話しましょう。MSFT を辞めようとしている他の本当に賢い人の 1 人が書いた次の記事を読んでみてください。

ザタオカ: カスタム アクションは (一般的に) 失敗を認めることです。

VDRPOJ は、MSI がネイティブに実行できることを実行するカスタム アクションを作成しましたが、現在は失敗しています。では、DLL を見つけて、マシンで動作するように修正したとしましょう。MSI を 1,000,000 台のマシンに出荷するとどうなりますか? 何台のマシンが故障するでしょうか? サポートコールは何回受けられますか? あなたの製品がつまらないというツイートをどれだけ受け取ることができますか?

簡単に言えば、Windows Installer XML や Industrial Strength Windows Installer XML などのより優れたツールを使用してインストーラーをやり直します。お金に余裕があるなら、InstallShield Professional も良い選択です。

于 2014-06-01T11:29:04.950 に答える