Я столкнулся с проблемой в проекте VS2017, который я строю. По какой-то причине проект WiX не может найти исполняемые и связанные файлы. Я получаю следующее сообщение об ошибке:
Системе не удается найти файл '...... \ Bin \ Debug \ PSALERTSScheduleServer.exe'.
Я проверил и файл PSALERTSScheduleServer. exe определенно находится в указанной относительной папке.
Я использовал метод определенной переменной, чтобы успешно хранить местоположение исполняемого файла в проектах WiX для ряда различных проектов на протяжении многих лет, однако этот ' против тренда: «Я использую WiX 3.11. Вот файл product.wsx для проекта:
<?xml version="1.0" encoding="UTF-8"?>
<?define SourceDir = "..\..\..\Bin\Debug" ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Id="*" Name="PSALERTSScheduleServerProduct" Language="1033" Version="5.3.0.8" Manufacturer="SP Energy Networks" UpgradeCode="a3baddfc-0965-47ed-a30f-be5eae7bc2df">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="PSALERTS ScheduleServer 2018" Level="1">
<ComponentRef Id="cmpDirScheduleServer" />
<ComponentRef Id="cmpScheduleServerExe" />
<ComponentRef Id="cmpScheduleServerPdb" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="PSALERTSScheduleServerProduct" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- The following section deals with the deployment of the program, config and related data files-->
<Directory Id="ProgramFilesFolder">
<Directory Id="dirSPEnergyNetworks" Name="SP Energy Networks">
<Directory Id="dirPSALERTS" Name="PSALERTS">
<Directory Id="dirScheduleServer" Name="PSALERTS Schedule Server">
<Component Id="cmpDirScheduleServer" Guid="{a valid guid}" KeyPath="yes">
<CreateFolder Directory="dirScheduleServer" />
<RemoveFile Id="PurgeScheduleServer" Name="*.*" On="uninstall" />
<RemoveFolder Id="idDirScheduleServer" On="uninstall" Directory="dirScheduleServer" />
</Component>
<Component Id="cmpScheduleServerExe" Guid="{a valid guid}">
<File Id="filScheduleServerExe"
KeyPath="yes"
Source="$(var.SourceDir)\PSALERTSScheduleServer.exe"
/>
<ServiceInstall Id="cmpScheduleServerExe"
Type="ownProcess"
Name="psaschdsrvr2018"
DisplayName="PSALERTS Schedule Server 2018"
Description="For automatic generation and delivery of PSALERTS reports."
Start="demand"
Account="LocalSystem"
ErrorControl="normal">
<util:PermissionEx
User="Everyone"
ServicePauseContinue="yes"
ServiceQueryStatus="yes"
ServiceStart="yes"
ServiceStop="yes"
ServiceUserDefinedControl="yes"
/>
</ServiceInstall>
<!-- <ServiceControl
Id="cmpScheduleServerExe"
Start="install" Stop="both"
Remove="uninstall"
Name="psaschdsrvr2018"
Wait="yes"
/>-->
<RemoveRegistryKey Id="RemoveScheduleServerRegKey" Root="HKLM" Key="SOFTWARE\SP Energy Networks\PSALERTS\Schedule Server" Action="removeOnUninstall" />
</Component>
<Component Id="cmpScheduleServerPdb" Guid="{a valid guid}">
<File Id="filScheduleServerPdb" KeyPath="yes" Source="$(var.SourceDir)\PSALERTSScheduleServer.pdb" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>