0

ユーザーがソフトウェアをインストールするためのインストールパスを選択できる設定ウィンドウを持つpythonスクリプトがあり、msbuildを使用してビルドできるアプリ用のwixプロジェクトがあります。私の質問は、スクリプトの設定ウィンドウから選択したパスを wix コンポーネントのソース パスに渡すにはどうすればよいですか?選択したパスは、レジストリに書き込まれるだけでなく、変数 'x' にも格納されます。変数「x」をスクリプトから wix に渡すか、レジストリから wix に渡します。助けてください.私のwixコードは以下のようになります.

<Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLDIR" Name="Companyname" >
                <Directory Id="INSTALLFOLDER" Name="myapp">
                    <Component Id='MainExecutable' Guid='*'>
                    <File Id='ExecutableFile' Name='mv.exe' DiskId='1' Source='c:\myfolder\...\qv.exe' KeyPath='yes'/>
                    </Component> 

「ソース」のパスは、python スクリプトから (変数またはレジストリから) である必要があります。

4

1 に答える 1

2

これはファイルパスであるため、いくつかのオプションがあります。

  1. (私のお気に入り)使用bind paths-属性で相対パスを使用する場合、File/@Sourceまたは次のような明示的な名前付きバインドパス構文を使用できる場合は、コマンドラインからスイッチを使用!(bindpath.VarName)するための1つ以上のバインドパスを指定できます(複数回、願い)。light.exe-bp

  2. 使用preprocessor variable-コマンドラインスイッチをに渡すことによりFile Source='$(var.VarName)'、の値を使用および指定できます。たとえば、Pythonスクリプトは、qv.exeファイルのソースの場所をユーザーに要求し、その結果をビルドに渡すことができます。結局のところ、これは単なるプリプロセッサ変数です。$(var.VarName)-dcandle.execandle -dVarName="python_variable_value_goes_here"

リンク時に変更される可能性のある複数の順序付けられたパスで実行可能ファイルを検索できるため、#1の方が好きです。プリプロセッサ変数を使用すると、コンパイル時にパスがロックされます。

于 2013-03-15T05:50:21.423 に答える