内のファイルをコピーします。ルートディスクにディレクトリを作成し、のWiXツールセット:(:システムディスクまたはc)と私はstackoverflowの内部に同様の質問を知ってる
WIX installer root directory and versioningを、
WIX:default directory in WixUI_InstallDir
Is it possible to have two root directories in WIX 、
copy file to custom dir in another partition、
How to create a directory in wix?
しかし、それらのどれも、C:\フォルダ内にフォルダを作成する簡単で即座のコードを示していません(ハードコードされていませんが、ルートディスクまたはシステムディスクまたはWindowsフォルダを含むディスクと呼ばれるものでなければなりません)その中のファイルをコピーすることができます。
つまり、WixはどのようにしてC:\ MynewDir \ example.jarフォルダを作成できますか?ここで
は、私が試したものです:
<?xml version="1.0" encoding="UTF-8"?>
<!-- WiX installer MyProgram by Mark Seuffert -->
<?define ProductVersion = "13.1.2.3"?>
<?define ProductUpgradeCode = "12345678-1234-1234-1234-111111111112"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" UpgradeCode="$(var.ProductUpgradeCode)" Name="MyProgram" Version="$(var.ProductVersion)" Manufacturer="COMPANY" Language="1033">
<Package InstallerVersion="200" Compressed="yes" Comments="Windows Installer Package" />
<Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="MyProgram">
<Component Id="ApplicationFiles" Guid="12345678-1234-1234-1234-222222222222">
<File Id="ApplicationFile1" Source="C:\Users\user\Desktop\myprogram.exe" />
</Component>
</Directory>
</Directory>
<Directory Id="ANOTHERLOCATION" FileSource="C:\MynewDir">
</Directory>
</Directory>
<DirectoryRef Id="ANOTHERLOCATION" FileSource="C:\MynewDir">
<Component Id="ApplicationFiles2" Guid="12345678-1234-1234-1235-111111111111">
<File Id="ApplicationFile2" Source="C:\Users\user\Desktop\InstallerFiles_13_4_9_3\myprogramLauncher.jar" />
<CreateFolder />
</Component>
</DirectoryRef>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate" />
</InstallExecuteSequence>
<Feature Id="DefaultFeature" Level="1">
<ComponentRef Id="ApplicationFiles2" />
<ComponentRef Id="ApplicationFiles" />
</Feature>
</Product>
</Wix>
EDIT 1: ヤンSklyarenkoはちょうど私が探していたものを見つけ、それはWindowsVolume(私はhttp://msdn.microsoft.com/en-us/library/windows/desktop/aa370905%28v=vs.85%29.aspx#system_folder_propertiesマイクロソフトドキュメント内にそれを逃したのか分からない)です。
しかし、FileSource = "C:\ MynewDir"をFileSource = "[WindowsVolume] MynewDir"に置き換えるにはどうすればよいですか?私は(@@@@ newpart @@@ヤンSklyarenkoの第二のサンプルを使用して自分のコードを更新し、より利用可能なスペースを持っている私のコンピュータで\ :(
EDIT 2:選択したボリュームは常にDで明らかにさえWINDOWSVOLUMEであるため@コードが異なるパーツ)、しかし行動はインストーラがより多くの空き領域(とディスクを選択し、まだ同じであるが識別D:\私の場合は)ありませんC:\ WINDOWSがある場合..
<?xml version="1.0" encoding="UTF-8"?>
<!-- WiX installer MyProgram by Mark Seuffert -->
<?define ProductVersion = "13.1.2.3"?>
<?define ProductUpgradeCode = "12345678-1234-1234-1234-111111111112"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" UpgradeCode="$(var.ProductUpgradeCode)" Name="MyProgram" Version="$(var.ProductVersion)" Manufacturer="COMPANY" Language="1033">
<Package InstallerVersion="200" Compressed="yes" Comments="Windows Installer Package" />
<Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="MyProgram">
<Component Id="ApplicationFiles" Guid="12345678-1234-1234-1234-222222222222">
<File Id="ApplicationFile1" Source="C:\Users\user\Desktop\myprogram.exe" />
</Component>
</Directory>
</Directory>
<Directory Id="ANOTHERLOCATION" FileSource="C:\MynewDir">
@@@@[email protected]@@@<Component Id="ApplicationFiles2" Guid="12345678-1234-1234-1235-111111111111">
<File Id="ApplicationFile2" Source="C:\Users\user\Desktop\InstallerFiles_13_4_9_3\myprogramLauncher.jar" />
<CreateFolder />
</Component>
</Directory>
</Directory>
@@@@[email protected]@@@<SetDirectory Id="ANOTHERLOCATION" Value="[WINDOWSVOLUME]" />
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate" />
</InstallExecuteSequence>
<Feature Id="DefaultFeature" Level="1">
<ComponentRef Id="ApplicationFiles2" />
<ComponentRef Id="ApplicationFiles" />
</Feature>
</Product>
</Wix>
EDIT 3上記の最後のコードスニペットは、しかし、提案されているようにWINDOWSVOLUMEのケーシングをWindowsVolumeに変更する必要があります。
私はあなたのコード全体を試しませんでしたが、あなたが正しく示唆したように、 'WindowsVolume'のケーシングが問題でした..今、私のコードスニペットが機能します!ありがとうございました – dendini