6

wxs ファイル File タグの Source 属性。パスにはスペースがあります。

<File Id="_uploads.UserImport.EDS_UserImport.xls" Name="EDS_UserImport.xls" Source="C:\Documents and Settings\kle\Desktop\OspreyMSIGenerator\OspreyMSIGenerator\Published\EDSContainer\uploads\UserImport\EDS_UserImport.xls"></File>

このエラーが発生します

candle.exe : エラー CNDL0103 : システムは、タイプ 'Source' のファイル 'and' を見つけることができません。

パスにスペースが含まれていないかどうかはわかりません。ソース パスでスペースをサポートするにはどうすればよいですか?

4

2 に答える 2

6

最新の安定した Wix リリースにアップグレードしてみてください。これを Wix 3.0.5419.0 でテストしたところ、スペースを含むファイル パスはエラーなしで受け入れられました。

関連するメモ: ファイル要素には、例のように絶対パスを含めないでください。これは、単一の開発者の PC でしかセットアップをビルドできないためです。次のように、代わりに wxs ファイルの場所からの相対パスを使用します。

<File Source="..\bin\foo.exe" />

または、次のようにファイルの場所を含む変数を使用します。

<File Source="$(var.BinFolder)foo.exe" />

次に、次のようにキャンドルを呼び出して、bin フォルダーの場所を渡すことができます。

candle.exe -dBinFolder=c:\someFolder\bin\ foo.wxs

edit : Rob が彼自身の回答で示したように、light.exe -b スイッチを使用して、インストールするファイルが見つかる 1 つ以上のベース ディレクトリを指定することもできます。

于 2009-11-28T20:51:59.240 に答える
4

@wcoenen は 1 つのメカニズムを提供します。ただし、light.exe -b スイッチを使用することを好みます。次に、コードは次のようになります。

<File Id="_uploads.UserImport.EDS_UserImport.xls" Name="EDS_UserImport.xls" Source="SourceDir\Published\EDSContainer\uploads\UserImport\EDS_UserImport.xls"></File>

そして、light.exe へのコマンド ラインは次のようになります。

-b "C:\Documents and Settings\kle\Desktop\OspreyMSIGenerator\OspreyMSIGenerator"

複数の -b スイッチを使用して、Source 属性の複雑さを大幅に軽減できます。

また、File/@Id と File/@Name は、デフォルトでファイル名 (この場合は「EDS_UserImport.xls」) になっている場合は省略できます。

于 2009-11-29T21:01:45.503 に答える