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>
문제는 내가 파이썬있는 시스템에서 설치 프로그램을 실행할 때, 그것은 나를 다운로드하여 설치하라는 유지한다는 것이다. 찾으려는 레지스트리 키가 시스템에 있습니다. 어떻게해야합니까?
IsInstalled는 RegistryCheck의 변수 이름입니다. 레지스트리 키 HKLM \ Software \ Python이 존재하면 true 여야합니다. IsCurrentUserInstalled에 대해서도 마찬가지입니다. 이제 문제는 파이썬을 다운로드 한 후 검사가 수행된다는 것입니다. 이미 설치되어 있으면 어쨌든 다운로드하지만 설치하지 않아도됩니다. – DevOlly