2

VS 2010インストーラをビルドしていますが、UIで選択するオプションに応じてアプリケーションフォルダにファイルをコピーしたいのです(UIは単純ではないので、カスタムアクションのインストールでのカスタムダイアログ)。 問題は、ファイルが既にコピーされた後にカスタムアクションが実際に実行されることです。条件ファイルのコピーを使用してインストーラプロジェクトをセットアップする方法

私が考えることのできる1つの解決策は、これらのファイルをすべてアプリケーションディレクトリにインストールして、カスタムアクションでいくつかのファイルを削除することです。しかし、これらのファイルは何らかの形で「安全」なので、短期間であってもファイルシステムにコピーしたくありません。

どのような考えですか?

答えて

0

あなたのファイルがファイルシステム上に存在してはならない場合は、要件に問題があります。 .msiストレージ自体はオープンフォーマットであり、多くのツールで読むことができるので、誰かがファイルを知っていれば、手動でファイルを見つけて抽出することが可能です。

私は、2つの理由でインストールされたファイルを削除しない方が良いと同意します。 1つは、無駄な作業を避け、2つは、Windowsインストーラが存在するはずのファイルが見つからないために修復シナリオが発生しないことです。これらのファイルがインストールの初期段階に存在するかどうかを判断し、その原因となるプロパティーを設定する(条件別にコンポーネントを無効にする、または機能の状態を変更する)

0

MSIダイアログのほとんどのコントロールには、installer propertiesが使用されます。たとえば、チェックボックスは、チェックボックスがオンになっているかどうかに基づいて、値に設定されている、または空になっているMY_CHECKBOXという名前のプロパティを使用します。

これらのプロパティは、ファイルを調整するために使用することができます。ソリューションエクスプローラのトップペイン

  • からソリューションエクスプローラで

    • セットアッププロジェクトを選択し
    • クリックファイルシステムエディタ]ボタンあなたが
    • を調整したいファイルを選択
    • のプロパティペインにConditionフィールドを設定します。たとえば、

      MY_CHECKBOX = "値"

  • 関連する問題