Frage

Meine Clickonce-Anwendung verwendet ein Drittanbieter-Tool, das das Visual C ++ 2005 redistributable erfordert. Das Drittanbieter-Tool funktioniert nicht, wenn nur die VC ++ 2008 Redistributable installiert ist. Doch in Visual Studio 2008, haben sich die Voraussetzungen erlauben Clickonce nicht eine Version für die verteilbare VC ++ angegeben werden; es wird eine VC ++ 2008 Voraussetzung, fügen Sie das Gefühl die meiste Zeit macht. Doch in dieser Situation wird eine frühere Version erforderlich. Clickonce erforderlich ist, so Mergemodulen indiskutabel sind. Irgendwelche Ideen, wie die Version angeben?

War es hilfreich?

Lösung

Wenn Sie eine Maschine mit VS 2005 installiert finden können, sollte die Lösung nicht zu hart sein. Sie haben die Fähigkeit zur Anpassung, was in den Voraussetzungen erscheint auf der Registerkarte Veröffentlichen Ihres Projekts Dialog.

  1. Auf einer Maschine mit VS 2005 installiert haben, gehen Sie zu \ Programme \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bootstrap \ Packages und kopieren Sie die vsredist_x86 Ordner an der Maschine veröffentlichen Sie aus.
  2. Benennen Sie den Ordner, nennen es vsredist_x86_2005 oder etwas ähnliches.
  3. in den Ordner, bearbeiten Sie die \ de \ package.xml Datei. Ändern Sie die <String Name="DisplayName"> Tag zu etwas, das Sinn ( Visual C ++ 2005 Laufzeitbibliotheken (x86) ) unterscheiden sie von der bestehenden 2008-Paket macht.
  4. Kopieren Sie den Ordner . C: \ Programme \ Microsoft SDKs \ Windows \ V6.0A \ Bootstrapper \ Packages
  5. Starten Sie Visual Studio, wenn es geöffnet ist.

Wenn Sie nun die Voraussetzungen Öffnen-Dialog sollten Sie einen neuen Eintrag für das 2005-Paket sehen. Ich habe nicht ganz diese Lösung testen, damit ich ein paar Details verpasst haben, aber hoffentlich wird Sie begonnen haben.

Andere Tipps

Ich glaube, können Sie die Manifest-Datei für Ihre Anwendung öffnen und die Versionen der redists ändern Sie Ihre App gegen sollte verknüpfen. Die Einträge in dem Manifest sollten übereinstimmen, was Sie in Ihrem C: \ Windows \ WinSxS Verz. Es gibt ein Codeproject , die eine gute Beschreibung der Verwendung verschiedene redistributables gibt.

Ich habe gerade installiert Visual Studio 2005. Hier ist ein Original-Bootstrap-Programm:

C: \ Programme \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bootstrap \ Packages \ vcredist_x86 \

\ de \ 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top