0

AFAIKWindows8には.NETFramework4.5が付属しており、2.0バージョンは含まれていません。バージョン2.0を対象としたアプリケーションがありましたが、Windows 8で実行すると、「。netFramework2.0をインストールする必要があります」のように表示されます。msdnから読み取る限り、すべての.netバージョンには下位互換性があり、アプリを新しいバージョンで実行する場合は、サポートされているフレームワークのバージョンをapp.configファイルに記載する必要があります。以下の構成ファイルを準備しましたが、msiを実行できますが、カスタムアクションの実行中に、msiexecが失敗し、次のエラーが発生します。「エラー1001。InstallUtilLib.dll:CoreBindToRuntimeHost(hr = 0x80070003):システムがパスを見つけることができません。指定"。このエラーを解決するにはどうすればよいですか?私の推測では、.netFramework2.0フォルダーの下でInstallUtilLibを探しています。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" />
    <supportedRuntime version="v3.5" />
    <supportedRuntime version="v3.0" />
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>
4

1 に答える 1

1

InstallUtil には多くの欠陥と制限がありました。インストーラーをサイレント モード (/qn) で実行すると、まだモーダル 1001 エラー メッセージが表示されることに気付くでしょう。はい、違います。はい、それは壊れています。

Windows Installer XML (WiX) Deployment Tools Foundation (DTF) カスタム アクションを使用したコードのリファクタリングをご覧ください。これは Microsoft のオープン ソース プロジェクトであり、おそらくあなたが気付いていない多くの問題を含むこれらの問題を解決します。

Deployment Tools Foundation (DTF) 管理のカスタム アクション

WiX ツールセット v3.6

Visual Studio では、ファイル | を使用します。新しいプロジェクト | Windows インストーラー XML | プロジェクトを作成するための C# カスタム アクション。プロジェクトのプロパティに移動し、.NET バージョンを 2.0 に設定します。4.0 の参照を削除します。CustomAction.Config を見て、2.0、4.0 以降をサポートするように設定されていることに注意してください。次に、コードを移植します。プロジェクトをビルドし、CustomActionName.CA.dll を取得して、DLL カスタム アクションとしてインストーラーに追加します。

また、Visual Studio 展開プロジェクトを使用している場合、それらにも多くの問題があり、Microsoft がそのプロジェクト タイプを Visual Studio 2012 から削除したことにも注意してください。

于 2012-10-15T11:29:42.383 に答える