2011-01-05 16 views
1

を選択した場合でもます。DefaultLocationにWindowsインストーラは、私が持っている必要があります...私はこれが既に回答されていない願っていますが、私は全体のインターネット上のすべての関連記事を読んでいるように私は感じて別のディレクトリを

をインストールインストーラのDefaultLocationプロパティはデフォルトでC:\またはD:\に設定されています(理想的にはここにロジックがありますが、カスタムアクションはファイルのインストール後に実行されるため、これはできません)。

私が見ている問題は、[TARGETDIR]または[ROOTDRIVE]のプロパティを一般的にC:\またはD:\に設定すると、ユーザーが別のインストール場所を選択すると、彼らが選んだ場所。

たとえば、私のマシン[ROOTDRIVE]はC:に解決されます。インストーラにD:\と言うと、C:\にインストールされます。これは、[TARGETDIR]プロパティと[ROOTDRIVE]プロパティの両方で発生します。

これを見た人、またはこれがなぜ起こっているのか知っている人はいますか?

おかげで、 スティーブ

答えて

0

これは、Visual Studioのインストーラで起こって、より重要なのは、それを修正する方法をされた理由を私は考え出しました。

「PackageAs」という名前のプロパティがあります。このプロパティは、セットアップファイルで使用される各ファイルのVisual Studio内でアクセスできます。デフォルトでは、このプロパティは「vsdpaDefault」に設定されています。この情報は、私が調べることができた少々の情報に基づいてファイルを圧縮し、次にファイルを変更し、その後LastModifiedDateを変更します。

これは、LastModifiedDateを維持するファイルをPackageAsの "vsdpaLoose"に変更することで解決できます。これにより、ファイルは圧縮されず、そのプロパティが維持されます。

うまくいけば、他の誰かが同じ問題を抱えていて、これが役に立つと思います。

1

あなたは、一般的にあなたがINSTALLDIRAPPLICATIONFOLDERのようなものを使用して、ユーザーのカスタマイズを持っていると思います空き領域の最大量とのドライブにこのデフォルトとしてTARGETDIRを設定することにしたくありません代わりにそのプロパティ。以下のWiXサンプルのデフォルトはC:\Program Files\ACME Xyz\My Programですが、ユーザがAPPLICATIONFOLDERの位置をD:\blahblahblahと変更すると、そこにファイルがインストールされます。

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
     <Directory Id="MyCo" Name="ACME Xyz"> 
      <Directory Id="APPLICATIONFOLDER" Name="My Program" DiskId="1"> 
      </Directory> 
     </Directory> 
    </Directory> 
</Directory> 

EDIT ::その場合、ちょうど即時カスタムアクションを使用します。例えば

<CustomAction Id="SetInstallFolder" Property="APPLICATIONFOLDER" Value="D:\" Execute="immediate" /> 

<InstallExecuteSequence> 
    <Custom Action="SetInstallFolder" Before="CostFinalize">ACTION="INSTALL" AND APPLICATIONFOLDER="" AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))</Custom> 
</InstallExecuteSequence> 
<InstallUISequence> 
    <Custom Action="SetInstallFolder" Before="CostFinalize">ACTION="INSTALL" AND APPLICATIONFOLDER="" AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))</Custom> 
</InstallUISequence> 
+0

ご回答いただきありがとうございます。これは私がやったことであり、私があなたが描写している動作を得るが、私が望むのは、インストールフォルダがD:\にデフォルト設定されていることだ。 DefaultLocationにSourceDir以外の値を使用すると、インストール時に入力された値は無視されます。これまでにこの行動を見たことがありますか? – StephenABritton

関連する問題