2016-06-11 15 views
2

Ich habe ein Visual Studio-Setup-Projekt, das ein x64-Programm installiert, das VC++ 14 Redist-Paket benötigt.Visual C++ 14 Redist Paket Voraussetzung - von Visual Studio Setup proj konfigurieren

Setup how it looks

wähle ich die Optionen wie pro Bild und eine Ordnerstruktur erstellt innen:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages 

I vcredist_x64 Ordner erstellt haben, die enthält:

vcredist_x64.exe 
product.xml 
en folder 

Innen en Ordner Ich habe :

package.xml 

Inhalt von product.xml:

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

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

    <!-- Defines list of files to be copied on build --> 
    <PackageFiles> 
    <PackageFile Name="vcredist_x64.exe" HomeSite="VCRedistExe"/> 
    </PackageFiles> 
    <InstallChecks> 
    <MsiProductCheck Property="VCRedistInstalled" Product="{e46eca4f-393b-40df-9f49-076faf788d83}"/> 
    </InstallChecks> 

    <!-- Defines how to invoke the setup for the Visual C++ 11.0 redist --> 
    <!-- TODO: Needs EstimatedTempSpace, LogFile, and an update of EstimatedDiskSpace --> 
    <Commands Reboot="Defer"> 
    <Command PackageFile="vcredist_x64.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 any platform other than x64 --> 
    <FailIf Property="ProcessorArchitecture" Value="AMD64" Compare="ValueNotEqualTo" String="InvalidOS"/> 

    <!-- Block install on Vista or below --> 
    <FailIf Property="VersionNT" Compare="VersionLessThan" Value="6.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> 

Inhalt von 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++ "14" Runtime Libraries (x64)</String> 
     <String Name="Culture">en</String> 
     <String Name="AdminRequired">You do not have the permissions required to install Visual C++ Runtime Libraries (x64). Please contact your administrator.</String> 
     <String Name="InvalidOS">Installation of Visual C++ Runtime Libraries (x64) is supported only on x64 machines.</String> 
     <String Name="GeneralFailure">A failure occurred attempting to install Visual C++ Runtime Libraries (x64).</String> 
      <String Name="VCRedistExe">http://go.microsoft.com/fwlink/?LinkID=210622&amp;clcid=0x409</String> 
    </Strings> 

    </Package> 

Wenn ich das Setup-Projekt zu bauen, gibt es keine Fehler.

Anfangs, wenn ich nicht, dass die Ordnerstruktur zusammen mit den xmls hatte hatte ich den Fehler auf Build:

enable 'Download prerequisites from the same location as my application' in the Prerequisites dialog box, you must download file 'vcredist_x64\vcredist_x64.exe' for item 'Visual C++ "14" Runtime Libraries (x64)' to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=616018. 

Jedoch habe ich jetzt keine Fehler haben. Das Problem besteht darin, dass die VC-weiterverteilbare Abhängigkeit nicht installiert wird.

Ich glaube, dass der Produktcode und andere Parameter in den Xmls nicht korrekt sind. Auch der Link VCRedistExe ist für VC++ 2010 gedacht, lädt aber während der Installation nichts herunter. Beachten Sie jedoch, dass ich die vcredist_x64.exe in der Ordnerstruktur habe, die die VC++ 14-Redist ist.

Bitte helfen Sie mir, wie ich viele andere Optionen auch versucht habe, und diese "offizielle" Option scheint nicht zu funktionieren (ich konnte relevante Info Visual C++ Redistributable für Visual Studio 2015 nicht finden).

Jede Option ist in Ordnung für mich (Download von der Website oder Download von der gleichen Stelle wie meine App), solange die Voraussetzung installiert ist.

+0

Verwenden von Visual Studio 2015 unter Windows 8. – florinp

Antwort