2012-03-06 13 views
1

wixを使ってインストーラを書いています。私はカスタムアクションも書いています。しかし、MSIをインストールしている間、ターゲットシステムにはインストールされていないので、インストールは失敗します。wixカスタムアクションが見つかりませんMSVCR100D.dll

/MTdオプションを使用してリンクしています。

msvcr100d.dllを静的にリンクする方法を教えてもらえますか?msvcr100d.dllがターゲットシステムに存在しない場合でも、私のMSIインストールは成功しますか?

答えて

5

MSVCR100D.dllの "D"は、ネイティブカスタムアクションDLLがデバッグDLLであることを示します。 "D"依存関係は、さまざまなSDKがインストールされていない限り、ターゲットマシン上に存在しません。リリースでDLLを再構築すると、依存関係がMSVCR100.dllに変更されます

また、WiX/Votiveを使用しているため、プロジェクトを作成するVisual Studio WiX C++ CAプロジェクトタイプがあります。私の経験では、デフォルトのコンパイラとリンカーの設定は、そのプロジェクトタイプを使用するときに外出するのが良いということでした。

0

私は同じ問題に気付きました。私の場合は、インストーラのコンテキストで動作するカスタムアクションをデバッグしようとしているので、デバッグバージョンをインストールします。

Microsoftのポリシーでは、Visual StudioのデバッグCRT DLLは再配布できません。明らかに、/ MTd(静的リンク、デバッグ構成)を使用してVisual Studio 2010でコンパイルされた64ビットDLLは、MSVCR100D.dllに依存する出力を生成するようです。 64ビットリリース構成では、/ MTでコンパイルするとMSVCR100.dllに依存しなくなります。

解決策の1つは、ターゲットテストマシンにVisual Studioをインストールすることです。 Microsoftはさらに提案を提供しますhere.

関連する問題