3

Visual Studio ソリューション フォルダーのルートにあるフォルダー内のファイルを参照する WiX インストーラー スクリプトがあります。私の .wixproj で、Properties|を設定しようとしました Tool Setting| | Linker

-b $(SolutionDir)\WixSource

$SolutionDir 変数の途中にスペースのあるフォルダーがあるため、エラーが発生します。だから、私は試しました

-b "$(SolutionDir)\WixSource"

名前の周りに引用符を使用することについて不平を言うエラーが発生し、明らかにスペースを含むフォルダーの最後に二重のバックスラッシュを配置する必要があります。 -- マクロ内にあるため、実行できません$(SolutionDir)

そのため、SO に関する提案に従って、LinkerBindInputPathsPropertyGroup を使用しようとしましたが、このプロパティの実際の使用に関するドキュメントが大幅に不足しています。

WiX 3.7 を実行していますが、以下は許可されていません...

<Package>グーグル中に、次のように要素内に移動する必要があると言われました。

<Package ...>
    <PropertyGroup>
        <LinkerBindInputPaths ???/>
    </PropertyGroup>
</Package>

WiX のドキュメント @ http://wix.sourceforge.net/manual-wix3/msbuild_task_reference_light.htmは言う

リンカーがすべてのファイルを検索するために使用するバインダー パスを指定します。これは、light.exe の -b スイッチに相当します。指定された BindPaths は、2 文字以上のバケット名の前に等号 ("=") を続けて、指定されたパスに付けることによって作成されます。

グーグルで例が見つからないため、「2文字以上のバケット名」が何であるか、またはそれに関連する規則があるかどうかを解読できません。

のようなものを指定できることを望んでいまし$(var.SolutionDir)\WixSourceたが、この問題を解決する方法を特定する助けが必要です...

4

1 に答える 1

6

LinkerBindInputPathsプロパティ グループではなく、アイテム グループです。これは、.wixproj MSBuild プロジェクト ファイルに含まれます。例えば:

<ItemGroup>
  <BindInputPaths Include="$(MSBuildProjectDirectory)" />
  <BindInputPaths Include="$(WIX_ROOT)src" />
  <BindInputPaths Include="$(WIX_ROOT)bin" />
  <BindInputPaths Include="$(WIX_ROOT)" />
</ItemGroup>
于 2013-08-05T20:35:15.643 に答える