Question

Mon application ClickOnce utilise un outil tiers qui requiert le redistribuable Visual C ++ 2005. L'outil tiers ne fonctionnera pas si seul VC ++ 2008 redistribuable est installé. Toutefois, dans Visual Studio 2008, les conditions préalables ClickOnce ne permettent pas de spécifier une version pour VC ++ redistributable; cela ajoutera une condition préalable à VC ++ 2008, ce qui est logique la plupart du temps. Cependant, dans cette situation, une version antérieure est requise. ClickOnce est requis, les modules de fusion sont donc hors de question. Des idées sur la manière de spécifier la version?

Était-ce utile?

La solution

Si vous pouvez trouver une machine sur laquelle VS 2005 est installé, la solution ne devrait pas être trop difficile. Vous avez la possibilité de personnaliser ce qui apparaît dans la boîte de dialogue Prérequis de l'onglet Publier de votre projet.

  1. Sur une machine sur laquelle VS 2005 est installé, accédez à \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Packages et copiez le dossier vsredist_x86 . sur la machine à partir de laquelle vous publiez.
  2. Renommez le dossier, appelez-le vsredist _ x86 <String Name="DisplayName"> 2005 ou quelque chose de similaire.
  3. Dans le dossier, modifiez le fichier \ en \ package.xml . Remplacez la balise <=> par quelque chose qui a du sens ( Bibliothèques d'exécution Visual C ++ 2005 (x86) ) pour la différencier du package 2008 existant. .
  4. Copiez le dossier dans SDKs C: \ Program Files \ Microsoft \ Windows \ v6.0A \ Bootstrapper \ Packages .
  5. Redémarrez Visual Studio s'il est ouvert.

Maintenant, lorsque vous ouvrez la boîte de dialogue Prérequis, vous devriez voir une nouvelle entrée pour le package 2005. Je n'ai pas complètement testé cette solution, donc j'ai peut-être manqué quelques détails, mais j'espère que cela vous aidera à démarrer.

Autres conseils

Je pense que vous pouvez ouvrir le fichier manifeste de votre application et modifier les versions des listes de diffusion auxquelles votre application devrait être liée. Les listes du manifeste doivent correspondre à ce que vous avez dans vos répertoires C: \ Windows \ WinSxS. Il existe une page CodeProject qui décrit bien l'utilisation de redistributables différentes.

Je viens d'installer Visual Studio 2005. Voici un programme d'amorçage d'origine:

C: \ Programmes \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Packages \ vcredist_x86 \

\ en \ package.xml

<?xml version="1.0" encoding="utf-8" ?>

<Package
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
  Name="DisplayName"
  Culture="Culture"
>

    <!-- Defines a localizable string table for error messages-->
    <Strings>
        <String Name="DisplayName">Visual C++ Runtime Libraries (x86)</String>
        <String Name="Culture">en</String>
        <String Name="AdminRequired">You do not have the permissions required to install Visual C++ Runtime Libraries (x86). Please contact your administrator.</String>
        <String Name="InvalidPlatformWin9x">Installation of Visual C++ Runtime Libraries (x86) is not supported on Windows 95. Contact your application vendor.</String>
        <String Name="InvalidPlatformWinNT">Installation of Visual C++ Runtime Libraries (x86) is not supported on Windows NT 4.0. Contact your application vendor.</String>
        <String Name="GeneralFailure">A failure occurred attempting to install Visual C++ Runtime Libraries (x86).</String>
    </Strings>

</Package>

\ product.xml

<?xml version="1.0" encoding="utf-8" ?> 

<Product
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
  ProductCode="Microsoft.Visual.C++.8.0.x86"
>

  <!-- Defines list of files to be copied on build -->
  <PackageFiles>
    <PackageFile Name="vcredist_x86.exe"/>
  </PackageFiles>

  <InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{A49F249F-0C91-497F-86DF-B2585E8E76B7}"/>
  </InstallChecks>

  <!-- Defines how to invoke the setup for the Visual C++ 8.0 redist -->
  <!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of EstimatedDiskSpace -->
  <Commands Reboot="Defer">
    <Command PackageFile="vcredist_x86.exe" 
         Arguments=' /q:a ' 
         >

      <!-- These checks determine whether the package is to be installed -->
      <InstallConditions>
        <BypassIf Property="VCRedistInstalled" Compare="ValueGreaterThanOrEqualTo" Value="3"/>
        <!-- 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="3010" Result="SuccessReboot"/>
        <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
      </ExitCodes>

    </Command>
  </Commands>
</Product>

\ vcredist_x86.exe

SHA1: 95040f80b0d203e1abaec4e06e0ec0e01c507d03
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top