私のプロジェクトにはシンプルなソリューションがあり、それはうまく機能しています。しかし、ソースパスを相対にする方法を把握できません。誰か助けてくれますか?
<Component Id="Bla.exe" Guid="*">
<File Id="Bla.exe" Source="D:\Projects\Bla\Bla\bin\Debug\Bla.exe" KeyPath="yes" Checksum="yes"/>
</Component>
Wixソリューションに関連するパスを作成するにはどうすればよいですか? WiXと必要なすべてのファイルは同じソリューションにあります。
次のように相対パスを使用できます。
<File Id="Bla.exe" Source="..\bin\Debug\Bla.exe" KeyPath="yes" Checksum="yes"/>
OR
構成ファイルをプロジェクトに追加して、一般的な変数を定義できます。これを行うには、新しい「WiX Include」ファイルをプロジェクトに追加して、それを呼び出しますconfig.wxi。次に、インクルードファイルで、SourceDir変数を次のように定義できます。
<?xml version="1.0" encoding="utf-8"?>
<Include>
<?define SourceDir = "D:\Projects\Bla\Bla\bin\Debug" ?>
</Include>
これで、.wxsファイルの上部にある構成ファイルへの参照を追加できます(例:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.Microsoft.com/wix/2006/wi">
<?include "config.wxi"?>
次に、SourceDir変数を次のように参照します。
<File Id="Bla.exe" Source="$(var.SourceDir)\Bla.exe" KeyPath="yes" Checksum="yes"/>
また、組み込みの WiXプロジェクト変数 を使用できます。
これを行うには多くの方法がありますが、個人的に私がしたいことは、アプリケーションインストーラプロジェクトをさまざまなソリューションに入れることです。最初にアプリケーションソリューションをビルドし、ポストビルドコマンドを使用してコンテンツを展開フォルダーに発行します。
インストーラープロジェクトで、ソースパスに$(var.SourceDir)= "..\deploy"を設定し、次に$(var.SourceDir)\ foo.exeを設定します。