我在安装服务时遇到问题。
我根据需要默认快捷方式和后记或/install
/uninstall
执行此操作。不幸的是,程序生成错误以停止操作。
令人惊讶的是,安装在旧环境中正常工作。
有没有其他方法可以安装该服务?
答案 0 :(得分:2)
当UAC关闭时,安装在较旧的环境中工作(这是一件坏事),您总是需要使用提升的权限运行安装程序/脚本(自Windows Vista以来就是如此)。 您可以包含清单,以便在使用/ install参数执行时,您的应用程序/服务需要提升。
要包含清单,您需要创建一个名为 manifest.xml 的xml文件,其中包含以下内容:
<?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>
然后创建一个名为 manifest.rc 的文件,其中包含以下内容:
1 24 "Manifest.xml"
在现代Delphi版本中,您可以通过项目管理器将rc文件包含在项目中,Delphi会自动将其作为资源包含在内。在较旧的Delphi版本中,您需要使用brcc编译器手动编译.rc文件以生成.res文件。
答案 1 :(得分:1)
您是否尝试以管理员身份运行?也许这是一个许可问题。
答案 2 :(得分:0)
在现代Delphi版本中:不需要.rc 转到菜单: 项目&gt;选项&gt;申请&gt;清单文件: - AutoGenerate - RequireAdminstrator
最好的问候。