WIXでの複数ファイルインストール指定の方法

このQ&Aのポイント
  • WIXを使って複数のファイルをインストールするmsiを開発する方法について解説します。
  • 1つのファイルをインストールするのは成功しているが、複数ファイルインストールにする方法がわからない。
  • WIXを使用し複数のファイルをインストールする方法について詳しく教えてください。
回答を見る
  • ベストアンサー

WIXでの複数ファイルインストール指定の方法

WIXを使って複数のファイルをインストールするmsiを開発 しようとするのですが以下の様にすると エラーが出てしまいます。 1つのファイルをインストールするのは成功しているのですが それを複数ファイルインストールにしたとたんに どのように記述したらいいのかわからなくなってしまいました。 *Ref http://codezine.jp/article/detail/507 <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="B6A98E5F-D6A7-46FB-9E9D-1F7BF443491C" Name="test" Version="1.00.0000" Manufacturer="author" Language="1041" Codepage="932"> <Package Id="????????-????-????-????-????????????" Description="test" Comments="test" InstallerVersion="200" Platforms="Intel" Manufacturer="author" Keywords="Installer,MSI,Database" Languages="1041" SummaryCodepage="932"/> <!-- ここから追加 --> <Media Id="1" Cabinet="Product.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="test" Name="test"> <Directory Id="INSTALLLOCATION" Name="test"> <Component Id="Component1" Guid="960E5941-FE2A-4384-A96F-8AED231DB301"> <File Id="File1" Name="XPS.exe" KeyPath="yes" Compressed="yes" DiskId="1" Source="release\XPS.exe"/> </Component> </Directory> </Directory> </Directory> </Directory> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="test" Name="test"> <Directory Id="INSTALLLOCATION" Name="test"> <Component Id="Component1" Guid="960E5941-FE2A-4384-A96F-8AED231DB302"> <File Id="File2" Name="XPS7.dll" KeyPath="yes" Compressed="yes" DiskId="2" Source="release\XPS7.dll"/> </Component> </Directory> </Directory> </Directory> </Directory> <Feature Id="Feature1" Level="1"> <ComponentRef Id="Component1" /> </Feature> <!-- ここまで追加 --> </Product> </Wix> どの様に記述すればエラーがでなくなるというか どのように指定すれば複数のファイルをインストールできる のかご教授願いますm(___)m

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

WiXのヘルプをまずは参照してください。 http://wix.sourceforge.net/manual-wix3/add_a_file.htm これに沿って書くと, <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="test" Name="test"> <Directory Id="INSTALLLOCATION" Name="test"> <Component Id="Component1" Guid="960E5941-FE2A-4384-A96F-8AED231DB301"> <File Id="File1" Name="XPS.exe" KeyPath="yes" Compressed="yes" DiskId="1" Source="release\XPS.exe"/> </Component> <Component Id="Component2" Guid="960E5941-FE2A-4384-A96F-8AED231DB302"> <File Id="File2" Name="XPS7.dll" KeyPath="yes" Compressed="yes" DiskId="2" Source="release\XPS7.dll"/> </Component> </Directory> </Directory> </Directory> </Directory> <Feature Id="Feature1" Level="1"> <ComponentRef Id="Component1" /> <ComponentRef Id="Component2" /> </Feature> こんな感じになります。 ただし,ビルドにかけていないので,エラーがあるかもしれません。 基本的には,先のURL通りに書けば複数のファイルを指定できます。

ringist
質問者

お礼

こんばんは コメントありがとうございます おかげで解決できました! ありがとうございました!!

関連するQ&A

  • 1つのファイルを複数のディレクトリにコピーする

    ディレクトリAの中に ディレクトリ B ディレクトリ C ディレクトリ D ディレクトリ E ファイル F があるとします.ここでファイルFをB,C,D,Eにコピーするにはどうコマンドを打てばよいのでしょうか?

  • Bシェルでファイルを移動するシェルの記述について

    3つのディレクトリを参照し10日以上経過したファイルを各々の指定したディレクトリへ移動する、というスクリプトを作成したいのですが、うまく動作しません。 条件として、いずれかのディレクトリに移動対象ファイルなかった場合、エラーを出さずに終了という形としたいです。 ご指摘いただけないでしょうか。 よろしくお願いします。 #!/bin/sh LANG=C;export LANG KEEP_DAYS=10 #移動元 acclogdir=/export/home/justadmi/test/acclog     consoledir=/export/home/justadmi/test/consolelog   sardir=/export/home/justadmi/test/sarlog       #移動先 target_accelogdir=/export/home/justadmi/test/mv_acdir  target_consoleldir=/export/home/justadmi/test/mv_consdi   target_sardir=/export/home/justadmi/test/mv_sadir    #ファイル移動の条件 LIST="   $acclogdir,access.200,$target_accelogdir     $consoledir,jusmgdp02_console.log.200,$target_consoleldir $sardir,sa200,$target_sardir          " for i in $LIST do DIR=`echo "${i}"|cut -d ',' -f1` FILE=`echo "${i}"|cut -d ',' -f2` TARGETDIR=`echo "${i}"|cut -d ',' -f3` cd $DIR mv find . -name $FILE\* -type f -mtime +$KEEP_DAYS -exec mv {} $TARGETDIR \; done exit 0

  • ファイルを検索して削除する

    /www 以下のディレクトリーに aaa.txt というファイルが存在する場合、 そのファイルが存在するディレクトリー内の全ての ***.txt を削除したいです。 find /www -name aaa.txt | xargs rm だと、aaa.txt だけの削除になります。 以下も考えましたが、これだと検索対象ディレクトリーが /www だけになります。 #!/bin/bash if test -e /www/aaa.txt then rm -f /www/*.txt fi どのように記述するとよいでしょうか。

  • Windows Installer の警告文???

    Windows Installer でMSIファイルを作っていますが下記の警告が出ます warning CNDL1075 : The Product/@UpgradeCode attribute was not found; it is strongly recommeded to ensure that this product can be upgraded. この警告文は私が作ったWXSソースに起因するのでしょう <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" Version="1.0.0.0" Language="1041" Codepage="932" Name="MySoftware" Manufacturer="MyCompany"> 以下省略 製品がアップグレードされることを保証するために強く推奨する??? 誰がどの様にアップグレードしようとするのですか? 私がアップグレードしようとした時とどの様に関係するのでしょうか? あるサンプルにはIdを B6A98E5F-D6A7-46FB-9E9D-1F7BF443491C と指定していましたので、その通りしたら今度は UpgradeCode が無いとのエラーが発生しました この呪文のような文字列は何処から生まれ出たのでしょうか? 私も使って良いのでしょうか? この呪文の意味が分からないので、そこでアチコチ調べたら*印指定にしておけば、後は適当に処理してくれる旨の説明を発見、喜んでその通りにしたら上記の警告文となったのです じゃ私はどうすれば良いのですか??? Id と UpdradeCode の意味、目的、指定内容、指定法が全く理解出来ないこの私に説明してください お願い致します、もう3日も嵌まり込んでニッチもサッチも行きません 助けてください!  ワンワンわぁわぁ~わぁ~ん~!!!

  • File クラスでディレクトリの場所を自動で取得するには

    現在のディレクトリにあるファイルを 自動で名前変更するプログラムを作りたいと思います。 例えば file name1.txt file name2.txt を file_name1.txt file_name2.txt にするものです。  http://takeoba.com/index.php?File%A5%AF%A5%E9%A5%B9 こちらを参考にしてみましたが、この場合ディレクトリ名を直接いれてますが 自動で取得することは可能でしょうか? File クラス以外でも大丈夫です。

    • ベストアンサー
    • Java
  • ファイルの検索条件について

    あるフォルダから以下のファイルを取り出したいです。 拡張子の無いファイル 拡張子.xmlのファイル 拡張子.0 find /test/aaaa /test/bbbb -name "*.xml" -a -not name "*.0" -type f 検索条件をこのように指定しましたが上手く動作しません。 どのようにすれば宜しいでしょうか。

  • cgiで複数のディレクトリーを纏めて指定したい

    cgiでのプログラミングに挑戦中なのですが。 考え方が判らず悩んでいます。 例えば、 /a/data /b/c/data /d/e/f/data と言うように、目的のディレクトリーは全て/dataと言う名称なのですが、階層がバラバラで、それらをまとめてワールドカード等を使って = '/*/data' の様な指定をすることは可能でしょうか?

  • Win10 XPSビューワがインストールできない

    Windows10 1803でxpsインストールをしようとしてますが、 先に進みません。 https://answers.microsoft.com/ja-jp/windows/forum/all/windows-10/76d80c1a-63a3-42f8-ae55-a9db6ae9c72f をの手順に沿って操作したのですが、想定外の状況です。 xpsビューワには必須のコンポーネントか何かがあるのでしょうか。 ご存知の方いらっしゃいましたらご教示いただくと幸です。

  • MT3.33でエントリーのファイル名にパス指定をしたい

    どうもお世話になります。 MT3.33でエントリーを作成する際、指定したディレクトリにファイルを保存するにはどういう設定が必要なのでしょうか? 例として、 ブログの公開設定のパス=/a/bとします。 ファイル名=testとしてエントリーを作成すると、a/b/test.htmlというファイルが作成されます。 これを作成するエントリーによって、a/b/game/2007/test.htmlというようにブログの公開設定のパス=/a/bの下層に/game/2007/を作成し、そこにtest.htmlが出来るようにしたいのです。 (予め、a/b/game/2007というディレクトリはFTPソフトで作成してあります) 単純に、エントリーのファイル名の部分をa/b/game/2007/testとしても勝手にabgame2007testというファイル名に変更されてパス指定が出来ないようです。 お手数ですが対処方法がありましたら教えて下さい。 よろしくお願いします。

  • 指定のファイルを開くマクロ

    こんにちは。 いろいろやってみましたが、うまくいかなかったのでアドバイスいただけませんか。 マクロで指定のファイルを開く場合、 ChDir "C:\File" Workbooks.Open Filename:="リスト.csv" のように指定しています。 A1にC:\File A2にリスト.csv このように記述して ChDir "A1" Workbooks.Open Filename:="A2" のように開くようにはできませんか。 それと、似たようなことですが Windows("リスト.csv").Activate と指定するところを Windows("A2").Activate のように指定したい場合はどうでしょうか。 次に、A1にディレクトリ A2にファイルネームを指定するためにダイアログを出したいのですが、 そのような便利なマクロはあるのでしょうか。 よろしくお願いします。

専門家に質問してみよう