2016-06-11 6 views
2

У меня есть проект установки Visual Studio, который устанавливает программу x64, которая нуждается в пакете Redist VC++ 14.Visual C++ 14 redist package предварительное условие - настройка с помощью настройки visual studio proj

Setup how it looks

Я выбрал варианты в соответствии с изображением и создали структуру папок внутри:

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

я создал папку vcredist_x64, которая содержит:

vcredist_x64.exe 
product.xml 
en folder 

Внутри собственной папки у меня есть :

package.xml 

Содержание 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> 

Содержание ЕН \ 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> 

Когда я построить проект установки, она не дает никаких ошибок.

Первоначально, когда у меня не было, что структура папок вместе с XMLs я имел ошибку на сборке:

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. 

Однако у меня нет никаких ошибок в настоящее время. Проблема заключается в том, что он не устанавливает распространяемую зависимость VC.

Я считаю, что код продукта и другие параметры неверны в xmls. Также ссылка VCRedistExe предназначена для VC++ 2010, но при загрузке ничего не загружается. Однако обратите внимание, что у меня есть файл vcredist_x64.exe внутри структуры папок, который является списком VC++ 14.

Пожалуйста, помогите мне, поскольку я также пробовал много других вариантов, и этот «официальный» вариант, похоже, не работает (я не смог найти соответствующую информацию. Visual C++ Redistributable для Visual Studio 2015).

Любой вариант подходит для меня (загрузка с веб-сайта или загрузка с того же места, что и мое приложение) при условии, что необходимо установить предварительное условие.

+0

Использование Visual Studio 2015 в Windows 8. – florinp

ответ