Ich erstelle ein Installationsprogramm für eine C# -Anwendung mit Visual Studio Install Project. Diese Anwendung benötigt Python, also habe ich dies als benutzerdefinierte Voraussetzung hinzugefügt. Dies ist das Paketmanifest ich für die Voraussetzung schrieb:Visual Studio-Installationsprojekt führt keine InstallConditions aus
<?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>
Das Problem ist, dass, wenn ich das Installationsprogramm auf einem System ausgeführt, das Python hat, ist es mir, es herunterzuladen und zu installieren fragen hält. Die Registrierungsschlüssel, nach denen ich suche, sind auf dem System vorhanden. Was soll ich machen?
IsInstalled ist nur ein Variablenname für das RegistryCheck: Es sollte wahr sein, wenn der Registrierungsschlüssel HKLM \ Software \ Python existiert. Dasselbe gilt für IsCurrentUserInstalled. Jetzt sehe ich, dass das Problem ist, dass die Überprüfungen nach dem Herunterladen von Python durchgeführt werden: Wenn es bereits installiert ist, wird es trotzdem heruntergeladen, aber es muss nicht installiert werden. – DevOlly