WIX не может найти app.exe в выходном каталоге x86 / x64 - PullRequest
0 голосов
/ 21 января 2019

У меня есть приложение на C #, цели которого - x86 или x64. Выходные данные сборки (например) ProjectDir/bin/x86|x64/Debug|Release/*

В моем файле *.wxs я определил следующую переменную

<?define AppTargetPath = "$(var.MyApp.TargetPath)" ?>

Что указывает на ProjectDir/bin/Debug|Release/app.exe

Если я собираю установщик, он не работает, потому что он не находит мое приложение exe

<File Id="AppExe" Source="$(var.AppTargetPath)" KeyPath="yes"/>

Если я посмотрю на Использование ссылок и переменных проекта site (http://wixtoolset.org/documentation/manual/v3/votive/votive_project_references.html) Я не могу найти другую переменную.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

На самом деле я решил это, собрав весь путь поверх моего файла wxs:

<?define AppTargetFileName = "$(var.myApp.TargetFileName)" ?>

<?if $(var.Platform) = x64 ?>
  <?define AppTargetPath = "$(var.myApp.ProjectDir)\bin\x64\$(var.myApp.Configuration)\$(var.AppTargetFileName)" ?>
<?elseif  $(var.Platform) = x86 ?>
  <?define AppTargetPath = "$(var.myApp.ProjectDir)\bin\x86\$(var.myApp.Configuration)\$(var.AppTargetFileName)" ?>
<?else ?>
  <?define AppTargetPath = "$(var.myApp.TargetPath)" ?>
<?endif ?>
0 голосов
/ 21 января 2019

Может быть попробовать это:

  1. Закомментируйте существующее определение.
  2. Добавьте проект, создающий EXE-файл, и ваш проект WiX к одному решению.
  3. Добавление ссылки из проекта WiX в проект EXE / Binary.
  4. Попробуйте эту разметку (замените имя проекта "TestConsoleApplication" на ваше):

    <Fragment>
      <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
       <Component>
        <File Source="$(var.TestConsoleApplication.TargetPath)" />
       </Component>
      </ComponentGroup>
    </Fragment>
    
  5. Перестроить все.
  6. Переключение между выпуском и отладкой сборок, затем повторная сборка всех.

Ссылки:

...