2012-02-20 3 views
1

WIXを使用してmsiセットアップを行うときに、変更/修復時にCopyFileの実行に関連する問題があります。WIX CopyFile要素を使用して、変更/修復時にファイルをターゲットにインストールせずにシステムフォルダにコピーする方法はありますか?

私は、ソースフォルダからユーザシステム内のある場所にあるフォルダにファイルをコピー/移動するコンポーネントを持っています。私のアプリケーションのフォルダではありません。私はこのファイルを移動するだけで、ターゲットにインストールしません。この機能は、完全なセットアップを使用してインストールするとうまく動作します。しかし、最初のインストール時にこの機能をインストールしないようにしてから、「変更」中にインストールしようとすると、機能内の他のすべてのカスタムアクション/コンポーネントは、CopyFileコンポーネントを除いて実行/インストールされます。これはセットアップには不可欠ですが、コピーされない場合はセットアップが失敗します。

誰かが同様の問題の解決策を見つけたのか、それと同様の問題が発生したのでしょうか?

+1

別の場所からファイルをコピーするのではなく、その場所にファイルをインストールできますか? –

+0

はい私はそれを試して、それが働いている。私や他の誰かが解決策を見つけるまで、私はそのアプローチを使用しますが、理想的には、インストールのサイズを減らすために重複を避けたいと思います。 – sttaq

+0

両方の場所にファイルが必要ですか? WiXはこの状況を処理し、ファイルの1つのバージョンのみをCABに保存する必要があります。 –

答えて

0

CopyFile操作を含むコンポーネントが正しく構成されていません。キーパスとして実際のファイルまたはレジストリエントリが必要です。

Windowsインストーラはコンポーネントを使用してリソースを管理しますが、コンポーネントがインストールされているかどうかを判断する主要な要素です。

したがって、キーパスとしてリソースのないコンポーネントはインストールされず、そのコンポーネントに含まれるCopyFile操作は実行されません。

+0

私はこのコンポーネントにファイルを置いたので、この方法で動作します。しかし、問題は、私が最初に避けようとしていたこのファイルを複製することです。 KeyPath属性もtrueに設定しました。私はCopyFileとレジストリエントリを配置し、それが動作するかどうかを確認しようとします。すぐに報告します。 – sttaq

+0

私は運がないと次のようにしました。 <コンポーネントId = "copyComponent" Guid = "GUID"> \t \t \t <のRegistryKeyルート= "HKLM" キー= "ソフトウェア" アクション= "作成"> <のRegistryKeyキー= "ProductKeyを" アクション= "createAndRemoveOnUninstall"> Action = "Write" Name = "KeyName" Type = "整数" Value = "0" KeyPath = "Yes" /> sttaq

関連する問題