我有以下問題: 我有setup.py文件 - 我使用「python setup.py bdist_wininst」將其更改爲.exe。安裝這不是沉默,當我啓動.exe文件安裝程序要求我選擇可取的Python安裝,我希望setup.exe安裝到。 現在我想安裝這個.exe文件爲Windows服務,這是我的維克斯代碼:使用WiX安裝和運行.exe作爲Windows服務
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="TelnetInstaller" Language="1033" Version="1.0.0.0" Manufacturer="manufactur" UpgradeCode="24E13D15-CFF7-48EB-82EA-B1F9547F846C">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<WixVariable Id="WixUILicenseRtf" Value="$(var.ProjectDir)\License.rtf"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes"/>
<UIRef Id="WixUI_InstallDir"/>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id='TempFolder'>
<Directory Id="INSTALLLOCATION" Name="MyApp" >
<Component Id='MyComponent' Guid='722E35C2-58F1-417D-AB02-2968CAF7C6D2'>
<File Id="mysetup_exe" Source="$(var.ProjectDir)\TelnetDS-0.9.win32.exe" />
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="Telnet"
DisplayName="Telnet DS service"
Description="DS for communicating with devices via Telnet protocol."
Start="auto"
ErrorControl="normal"
Interactive="yes"
>
</ServiceInstall>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="Telnet" Wait="yes" />
</Component>
</Directory>
</Directory>
</Directory>
<Feature Id="MainApplication" Title="Main Application" Level="1">
<ComponentRef Id="MyComponent" />
</Feature>
<!--<CustomAction Id="run_setup" FileKey="mysetup_exe" ExeCommand=""
Execute="deferred" Impersonate="yes"
Return="check" />
<InstallExecuteSequence>
<Custom Action="run_setup" Before="InstallFinalize">NOT Installed </Custom>
</InstallExecuteSequence>-->
</Product>
</Wix>
問題是,在期間產生的維克斯安裝.msi文件有一個問題:「請確認您有足夠的特權來安裝系統服務「 現在我不知道這是什麼原因 - 是這種情況,我確實沒有這種權限,或者我正在嘗試安裝需要我輸入數據的.exe(選擇python安裝文件夾)作爲服務。 你知道如何解決這個問題嗎?問候
我嘗試過關閉它,不起作用。我決定使用NSSM https://nssm.cc/ –
好的,請檢查並確認NSSM。 – prem
它可以工作,NSSM有一套很好的命令,你可以在cmd.exe中運行。 我剛添加了啓動批處理文件的自定義操作,該文件使用NSSM命令來安裝和運行我的服務 –