2016-05-31 8 views
0

Ich habe ein Problem mit der Installation des Dienstes.Service-Installation unter Windows 8,10 usw.

Ich mache es standardmäßig Verknüpfung und ein PostScript oder /install/uninstall je nach Bedarf. Leider erzeugt das Programm einen Fehler, um die Aktion zu stoppen.

Erstaunlicherweise Installation funktioniert ordnungsgemäß in älteren Umgebungen.

Gibt es eine andere Möglichkeit, den Dienst zu installieren?

Antwort

2

Die Installation funktionierte in älteren Umgebungen, wenn UAC ausgeschaltet ist (was eine schlechte Sache zu tun ist), Sie müssen immer Ihr Installationsprogramm/Skript mit erhöhten Rechten ausführen (seit Windows Vista so). Sie können ein Manifest einschließen, sodass Ihre Anwendung/Ihr Dienst eine Erhöhung erfordert, wenn Sie mit dem Parameter/install ausführen.

Um ein Manifest zu enthalten, benötigen Sie eine XML-Datei manifest.xml mit folgendem Inhalt zu erstellen:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="YourApplication.exe" type="*" /> 
    <description>elevate execution level</description> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*" /> 
    </dependentAssembly> 
    </dependency> 
</assembly> 

Dann erstellen Sie eine Datei mit dem Namen manifest.rc mit folgendem Inhalt:

1 24 "Manifest.xml" 

In modernen Delphi-Versionen können Sie die RC-Datei einfach über den Projektmanager in das Projekt einfügen, und Delphi fügt sie automatisch als Ressource ein. In älteren Delphi-Versionen müssen Sie die .rc-Datei mit dem brcc-Compiler manuell kompilieren, um die .res-Datei zu erstellen.

+0

Wie kann ich Manifest enthalten? – Toster

+0

Delphi 10 Seattle (XE10) – Toster

+1

@Toster - Haben Sie ein wenig über ein Manifest in einer Delphi-Anwendung googlen? whosrdaddy hat dir genau gegeben, was zu tun ist. – RBA

1

Haben Sie versucht, als Administrator zu laufen? Vielleicht ist es ein Genehmigungsproblem.

+0

Ja, aber wenn ich Probleme mit Windows 7 und älter habe, bekomme ich keinen Fehler (wie Programm xxx nicht mehr funktioniert), nur ein Berechtigungsproblem Fehler (Code 5). Unter Windows 10 einfach nur (Programm xxx nicht mehr funktionieren) – Toster

+0

Vielleicht unterstützt Programm Win 10 nicht, welches Programm ist das? – Marco

+0

Das Programm ist in Ordnung (Delphi compiled service) aber das Problem ist nur bei der Installation. – Toster