2016-06-01 2 views
0

Visual Studio 설치 프로젝트를 사용하여 C# 응용 프로그램의 설치 관리자를 만듭니다. 이 응용 프로그램에는 Python이 필요하므로 사용자 정의 전제 조건으로 추가했습니다. 이 내가 전제 조건에 대해 쓴 매니페스트 패키지는 다음과 같습니다Visual Studio 설치 프로젝트가 InstallConditions를 수행하지 않습니다.

<?xml version="1.0" encoding="utf-8"?> 
<Package Name="DisplayName" Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"> 
    <PackageFiles CopyAllPackageFiles="false"> 
<PackageFile Name="python-3.4.4.amd64.msi" HomeSite="https://www.python.org/ftp/python/3.4.4/python-3.4.4.amd64.msi" PublicKey="3082010A0282010100AD1F1AA13C2A1F0A66721AC80D3356CC4DDB267CAA18E002B057D85E978FE5BF03AC7820A182AE3F7C785AAFFFC448FC5736B35D9E236F5E805EB60EA21276470C4DE40A7975B3DA98F90D50CE3702DEB5A7D44BAC8958F470CDE7C59220D23E2D902E0B6690EFA51F5D27843798CAB855823FE6F14F2A685EF5CF6F777BB45362DD6C55C12D2EA258B6E44B29342A8156F 3C7C9EFACAD23193E86ED44FCD8F2797DE9A2CCFE5A6DE60E57EC4F5DBDA878505B63B0AA41F129AC6F5CF1079C0649A9D0BAD01DC52989D71672E9D8EFE6A0B1A285232181E82D114D8871AAAEAF26BAC01D1FB787352B3785E22D3B9D6ABDC4D99A8D04ADD3596070F2B23A38F90203010001" /> 
</PackageFiles> 
<InstallChecks> 
<RegistryCheck Property="IsInstalled" Key="HKLM\Software\Python\"/> 
<RegistryCheck Property="IsCurrentUserInstalled" Key="HKCU\Software\Python\"/> 
</InstallChecks> 
<Commands Reboot="Defer"> 
<Command PackageFile="python-3.4.4.amd64.msi"> 
    <InstallConditions> 
    <BypassIf Property="IsInstalled" Compare="ValueExists" /> 
    <BypassIf Property="IsCurrentUserInstalled" Compare="ValueExists" /> 
    </InstallConditions> 
    <ExitCodes> 
    <ExitCode Value="0" Result="Success"/> 
    <DefaultExitCode Result="Fail" String="Anunexpectedexitcodewasr" FormatMessageFromSystem="true" /> 
    </ExitCodes> 
</Command> 
</Commands> 
<Strings> 
<String Name="Culture">no</String> 
<String Name="DisplayName">Python 3.4.4</String> 
<String Name="Anunexpectedexitcodewasr">An unexpected exit code was returned from the installer. The installation failed.</String> 
</Strings> 
</Package> 

문제는 내가 파이썬있는 시스템에서 설치 프로그램을 실행할 때, 그것은 나를 다운로드하여 설치하라는 유지한다는 것이다. 찾으려는 레지스트리 키가 시스템에 있습니다. 어떻게해야합니까?

답변

0

부팅 스트 래퍼 검사가 기본 위치인지 WoW6432 위치인지 여부는 분명하지 않습니다. 32 비트 앱인 경우 잘못된 (예 : 32 비트) 레지스트리가 표시 될 수 있습니다. WoW6432 레지스트리 또는 기본 WoW6432 레지스트리를 선택하는 방법이 있는지 나는 모른다.

또한 Python MSI 파일의 레지스트리 테이블을 보면 "IsInstalled"가 포함 된 내용이없는 것으로 나타나며 해당 항목을 만든 것으로 설치를 기대합니다. 그러나 설치 장소가 포함되어있는 Software \ Python \ PythonCore \ 3.4 \ InstallPath 항목이 있습니다. 그래서 찾아야 할 항목이 있습니다.

+0

IsInstalled는 RegistryCheck의 변수 이름입니다. 레지스트리 키 HKLM \ Software \ Python이 존재하면 true 여야합니다. IsCurrentUserInstalled에 대해서도 마찬가지입니다. 이제 문제는 파이썬을 다운로드 한 후 검사가 수행된다는 것입니다. 이미 설치되어 있으면 어쨌든 다운로드하지만 설치하지 않아도됩니다. – DevOlly

관련 문제