Мой установщик C# всегда переустанавливает предварительную версию .exe, не обнаруживая ее - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема в Visual Studio.

Я добавил программное обеспечение openvpn.exe в мастер установки в C# в качестве предварительного условия, создав продукт с помощью Clickonce Bootstrapper. Он работает хорошо, но программа установки не обнаруживает его, пока он уже установлен, поэтому каждый раз, когда я запускаю программу установки, она переустанавливает программу openvpn.exe.

Вот продукт. xml файл:

<?xml version="1.0" encoding="utf-8" ?> 
 <Product 
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" 
  ProductCode="monalisa.myproduct.myvpn" > 
  <!-- Defines list of files to be copied on build --> 
  <PackageFiles CopyAllPackageFiles="true"> 
   <PackageFile Name="openvpn-install-2.4.8-I602-Win10.exe" HomeSite="https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.8-I602-Win10.exe" /> 
  </PackageFiles> 
  <RelatedProducts> 
        <DependsOnProduct Code=".NETFramework,Version=v4.7.2" />
  </RelatedProducts> 
  <!-- <InstallChecks> 
       <MsiProductCheck Property="IsInstalled"  
         Product="OpenVPN"/> 
  </InstallChecks> -->
  <Commands> 
   <Command PackageFile="openvpn-install-2.4.8-I602-Win10.exe" 
      Arguments='/S'> 
    <!-- These checks determine whether the package is to be installed --> 
    <InstallConditions> 

     <BypassIf Property="IsInstalled" Compare="ValueGreaterThan" Value="0" /> 

    </InstallConditions> 
    <ExitCodes> 
     <ExitCode Value="0" Result="Success"/> 
     <ExitCode Value="1641" Result="SuccessReboot"/> 
     <ExitCode Value="3010" Result="SuccessReboot"/> 
     <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> 
    </ExitCodes> 
   </Command>
  </Commands> 
 </Product>
...