Warm tip: This article is reproduced from serverfault.com, please click

Prerequisites not load in Visual Studio

发布于 2022-06-09 22:28:56

I am making an installer that, in addition to having the development, takes to automatically install the "Microsoft Access database engine 2010" (MADE2010), this due to a database connection. The problem I have is that my computer was formatted and when I wanted to load the project again, it appeared as a warning in the MADE2010 prerequisite as not enabled, I removed the selection, load the MADE2010 XML and installers again and now I can't get them to load back into the list of prerequisites. I already uploaded the folder in

*C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages*

In it load the "product.xml" file, the "AccessDatabaseEngine.exe" installer (since I only need x86) and create a folder called "en", which contains two files, one called "license.txt" and "package .xml", but the MADE2010 in the Visual Studio (2017) prerequisites is not loaded.

Can you please guide me if I'm making a mistake?

This is "package.xml" file:

 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <Product  
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"  
  ProductCode="Access.Database.Engine.2010"  
 >  
  <!-- Defines list of files to be copied on build -->  
  <PackageFiles CopyAllPackageFiles="false">  
   <PackageFile Name="AccessDatabaseEngine.exe" HomeSite="http://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe" />   
  </PackageFiles>  
  <RelatedProducts>  
   <DependsOnProduct Code="Microsoft.Net.Framework.2.0" />  
  </RelatedProducts>  
  <InstallChecks>  
       <MsiProductCheck Property="IsInstalled"   
         Product="{90140000-00D1-0409-0000-0000000FF1CE}"/>  
  </InstallChecks>  
  <Commands>  
   <Command PackageFile="AccessDatabaseEngine.exe"  
      Arguments='/passive'>  
    <!-- These checks determine whether the package is to be installed -->  
    <InstallConditions>  
     <!-- ByPass if the Processor is not x86 -->  
     <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/>  
   <!-- ByPass if we have installed -->  
     <BypassIf Property="IsInstalled" Compare="ValueGreaterThan" Value="0" />  
     <!-- Block install if user does not have admin privileges -->  
     <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>  
     <!-- Block install on Win95 -->  
     <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>  
     <!-- Block install on NT 4 or less -->  
     <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>  
    </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>  

This is "product.xml" file:

 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <Product  
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"  
  ProductCode="Access.Database.Engine.2010"  
 >  
  <!-- Defines list of files to be copied on build -->  
  <PackageFiles CopyAllPackageFiles="false">  
   <PackageFile Name="AccessDatabaseEngine.exe" HomeSite="http://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe" />   
  </PackageFiles>  
  <RelatedProducts>  
   <DependsOnProduct Code="Microsoft.Net.Framework.2.0" />  
  </RelatedProducts>  
  <InstallChecks>  
       <MsiProductCheck Property="IsInstalled"   
         Product="{90140000-00D1-0409-0000-0000000FF1CE}"/>  
  </InstallChecks>  
  <Commands>  
   <Command PackageFile="AccessDatabaseEngine.exe"  
      Arguments='/passive'>  
    <!-- These checks determine whether the package is to be installed -->  
    <InstallConditions>  
     <!-- ByPass if the Processor is not x86 -->  
     <BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/>  
   <!-- ByPass if we have installed -->  
     <BypassIf Property="IsInstalled" Compare="ValueGreaterThan" Value="0" />  
     <!-- Block install if user does not have admin privileges -->  
     <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>  
     <!-- Block install on Win95 -->  
     <FailIf Property="Version9x" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>  
     <!-- Block install on NT 4 or less -->  
     <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>  
    </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>  
Questioner
LARC
Viewed
0
LARC 2022-06-13 22:29:04

I found the mistake.

When making the entire package (package, product, license, language and executable files), this must be done outside the SDKs folder (reference on your desktop) because if you do it inside, no matter how many you configure Changes in prerequisites will be reflected. In addition to that, in the deployment properties, in:

Properties > Misc > Localization

make sure to select the language you need. In my case, I am using English (USA), so there you select "English (United States)" and in your folder you must create a folder called "en" and there include the "package.xml and license.txt" files or EULA.