Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Service Wix窗口服务仅复制安装文件夹中的exe文件,而不是所有依赖项_Service_Wix_Window - Fatal编程技术网

Service Wix窗口服务仅复制安装文件夹中的exe文件,而不是所有依赖项

Service Wix窗口服务仅复制安装文件夹中的exe文件,而不是所有依赖项,service,wix,window,Service,Wix,Window,我是wix新手,正在创建窗口服务。我已经创建了我的服务并成功地添加到窗口服务中,但当我运行它时,由于错误而停止 <?xml version="1.0" encoding="UTF-8"?> <?define Name = "New Window Service" ?> <?define Manufacturer = "GAT" ?> <?define UpgradeCode = "{0d4fb541-bb66-4df8-bdab-893564e1

我是wix新手,正在创建窗口服务。我已经创建了我的服务并成功地添加到窗口服务中,但当我运行它时,由于错误而停止

    <?xml version="1.0" encoding="UTF-8"?>
<?define Name = "New Window Service" ?>
<?define Manufacturer = "GAT" ?>
<?define UpgradeCode = "{0d4fb541-bb66-4df8-bdab-893564e191fc}" ?>

<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
     xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"
       >
  <Product Id="*" Name="$(var.Name)" Manufacturer="$(var.Manufacturer)" Version="1.0.0.0" UpgradeCode="$(var.UpgradeCode)"  Language="1033">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    <Media Id="1" Cabinet="GAT.GATAC.ServiceLayer.WindowsServiceHost.cab" EmbedCab="yes" />
    <MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit." />
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="ROOTDIRECTORY" Name="$(var.Manufacturer)">
          <Directory Id="INSTALLFOLDER" Name="$(var.Name)" />
        </Directory>
      </Directory>
    </Directory>
    <DirectoryRef Id="INSTALLFOLDER">
      <Component Id="$(var.GAT.GATAC.ServiceLayer.WindowsServiceHost.TargetFileName)">
        <CreateFolder />
        <File Id="$(var.GAT.GATAC.ServiceLayer.WindowsServiceHost.TargetFileName)" Source="D:\Projects\GATAC\GAT.GATAC.ServiceLayer.WindowsServiceHost\bin\Release\GAT.GATAC.ServiceLayer.WindowsServiceHost.exe" KeyPath="yes"  Vital="yes" />
        <File Id="GAT.GATAC.ServiceLayer.WindowsServiceHost.exe.config"
                                  Name="MyProduct.exe.config"
                                  Source="D:\Projects\GATAC\GAT.GATAC.ServiceLayer.WindowsServiceHost\bin\Release\GAT.GATAC.ServiceLayer.WindowsServiceHost.exe.config"
                                  Vital="yes"
                                  KeyPath="no"
                                  DiskId="1" />
        <RemoveFile Id="ALLFILES" Name="*.*" On="both" />
        <util:XmlFile Id="ModifyServiceLocation" Action="setValue" ElementPath="/configuration/connectionStrings/add[\[]@name='DefaultConnection'[\]]/@connectionString" File="D:\Projects\GATAC\GAT.GATAC.ServiceLayer.WindowsServiceHost\bin\Release\GAT.GATAC.ServiceLayer.WindowsServiceHost.exe.config" Value="Data Source=[DB_SERVER];Initial Catalog=[DB_DATABASE];User Id=[DB_USER];Pwd=[DB_PASSWORD]"/>

        <ServiceInstall Id="ServiceInstaller"
                        Type="ownProcess"
                        Name="GAT.GATAC.ServiceLayer.WindowsServiceHost"
                        DisplayName="$(var.Name)"
                        Description="A Test Service that logs dummy text on an interval to a text file."
                        Start="auto"
                        ErrorControl="normal"
                        />
        <ServiceControl Id="ServiceInstaller"
                    Stop="both"
                    Remove="both"
                    Name="GAT.GATAC.ServiceLayer.WindowsServiceHost"
                    Wait="yes" />
      </Component>
    </DirectoryRef>
    <Feature Id="MainApplication" Title="Main Application" Level="1">
      <ComponentRef Id="$(var.GAT.GATAC.ServiceLayer.WindowsServiceHost.TargetFileName)" />
    </Feature>
  </Product>
</Wix>


当我在服务的安装文件夹中看到只有exe文件,因此如何在该文件夹中复制Windows服务的所有依赖项,我的代码如下。当我在安装文件夹中手动复制文件时,它可以工作。我是否需要获取

是的,您需要将wxs中的所有文件作为要安装的组件包含在内

如果您有一些依赖项,您可以自己添加它们作为文件组件。如果有很多文件考虑使用热键为您生成WXS文件,您可以将文件元素复制到WXS代码中。如果文件依赖项可能频繁更改,请考虑使用热来生成WXS,并将其作为主安装程序中的链接文件。


理想情况下,所有依赖项都包含在GAT.GATAC.ServiceLayer.WindowsServiceHost项目的bin文件夹中,因此您可以使用$(var.GAT.GATAC.ServiceLayer.WindowsServiceHost.TargetDir)DependencyFileName作为文件源。

是,您需要将wxs中的所有文件作为要安装的组件包括在内

如果您有一些依赖项,您可以自己添加它们作为文件组件。如果有很多文件考虑使用热键为您生成WXS文件,您可以将文件元素复制到WXS代码中。如果文件依赖项可能频繁更改,请考虑使用热来生成WXS,并将其作为主安装程序中的链接文件。


理想情况下,所有依赖项都包含在GAT.GATAC.ServiceLayer.WindowsServiceHost项目的bin文件夹中,因此您可以使用$(var.GAT.GATAC.ServiceLayer.WindowsServiceHost.TargetDir)DependencyFileName作为文件源。

非常感谢您的回答,但使用时我会出错$(var.GAT.GATAC.ServiceLayer.WindowsServiceHost.TargetDir)“未定义的预处理器变量”。我已经在wix项目中添加了项目引用。当您构建candle.exe和许多定义时,输出窗口中也应该有项目引用。您可以在该窗口中搜索“TargetDir”它应该显示GAT.GATAC…项目的-d.TargetDir=路径。也许这只是一个小错误。非常感谢您的回答,但当我使用$(var.GAT.GATAC.ServiceLayer.WindowsServiceHost.TargetDir)“未定义的预处理器变量”时,我会出错。我已经在wix项目中添加了项目引用。当您构建candle.exe时,输出窗口中应该有很多定义。您可以在该窗口中搜索“TargetDir”,它应该显示GAT.GATAC…项目的-d.TargetDir=Path。可能这只是一个小的输入错误。