Installation Wix安装的应用程序(和快捷方式)显示管理员符号
成功创建和测试应用程序后,我还使用Wix手动创建了该应用程序的安装程序,而不是VS提供的ClickOnce 无论如何,安装是成功的,将所有注册表项放置在正确的位置,对于需要它们的文件也是如此,并且快捷方式(所有快捷方式都会在之后清理) 这个问题并不重要,我只是很挑剔:D 在Wix安装程序正在安装的主exe文件上,以及指向该文件的快捷方式上,图标右下角有蓝色和黄色的管理屏蔽。应用程序不需要管理员权限才能正常工作,也不需要实际启动UAC或以管理员身份运行(除非通过右键单击>以管理员身份运行明确完成) 问题是如何防止屏蔽应用于应用程序和快捷方式图标Installation Wix安装的应用程序(和快捷方式)显示管理员符号,installation,wix,icons,admin,Installation,Wix,Icons,Admin,成功创建和测试应用程序后,我还使用Wix手动创建了该应用程序的安装程序,而不是VS提供的ClickOnce 无论如何,安装是成功的,将所有注册表项放置在正确的位置,对于需要它们的文件也是如此,并且快捷方式(所有快捷方式都会在之后清理) 这个问题并不重要,我只是很挑剔:D 在Wix安装程序正在安装的主exe文件上,以及指向该文件的快捷方式上,图标右下角有蓝色和黄色的管理屏蔽。应用程序不需要管理员权限才能正常工作,也不需要实际启动UAC或以管理员身份运行(除非通过右键单击>以管理员身份运行明确完成)
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<?include "Macros.wxi" ?>
<!-- Installation Settings -->
<Product Id="*"
Name="$(var.NameApp)"
Language="1033"
Version="1.0.0.0"
Manufacturer="$(var.NameCompany)"
UpgradeCode="$(var.GUID_Upgrade)">
<Package InstallerVersion="200"
Compressed="yes"
InstallScope="perMachine"
Comments="Windows Installer Package"/>
<Media Id="1"
Cabinet="product.cab"
EmbedCab="yes"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of this software is already installed" />
<!-- .NET Framework Check -->
<PropertyRef Id="NETFRAMEWORK40CLIENT" />
<Condition Message="This application requires .NET Framework 4.0. Please install the .NET Framework then try again">
<![CDATA[Installed OR NETFRAMEWORK40CLIENT]]>
</Condition>
<!-- Installation files, folders, reg-keys, shortcuts, etc -->
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- Program Files Folder -->
<Directory Id="ProgramFilesFolder">
<!-- Company Application Folder -->
<Directory Id="INSTALLDIR" Name="$(var.NameCompany)">
<!-- Main Application Files -->
<Component Id="CmpAppMain" Guid="$(var.GUID_CmpAppMain)">
<File Id="FileAppMainEXE" Source="$(var.PathExe)" Vital="yes" />
<RegistryKey Root="HKLM"
Key="SOFTWARE\$(var.NameCompany)\$(var.NameApp)">
<RegistryValue Name="installed"
Type="integer"
Value="1"
KeyPath="yes" />
</RegistryKey>
</Component>
<!-- Common DLLs for multiple apps -->
<Component Id="CmpAppLibs" Guid="$(var.GUID_CmpAppLibs)">
<File Id="FileDeviceDLL" Source="$(var.PathLibDevice)" Vital="yes" />
<File Id="FileUtilDLL" Source="$(var.PathLibUtil)" Vital="yes"/>
<RemoveFile Id="FileClrDevice" Directory="INSTALLDIR" Name="Comms.log" On="uninstall"/>
<RegistryKey Root="HKLM"
Key="SOFTWARE\$(var.NameCompany)">
<RegistryValue Name="Lib Path"
Type="string"
Value="[INSTALLDIR]" />
<RegistryValue Name="Lib Ver"
Type="string"
Value="1.0.0"
KeyPath="yes" />
</RegistryKey>
</Component>
<!-- Common Resource Files -->
<Directory Id="FolderResource" Name="rsc">
<Component Id="CmpAppRsc" Guid="$(var.GUID_CmpAppRscs)">
<File Id="RscOilDb" Source="$(var.PathRscOil)" Vital="no" KeyPath="yes"/>
</Component>
</Directory>
</Directory>
<!-- END - Company Application Folder -->
</Directory>
<!-- END - Program Files Folder -->
<!-- Start Menu Folder -->
<Directory Id="ProgramMenuFolder">
<!-- Start Menu Company Folder -->
<Directory Id="ProgramMenuCompany" Name="$(var.NameCompany)">
<Component Id="CmpLnks" Guid="$(var.GUID_CmpLnks)">
<Shortcut Id="LnkStartMenu"
Name="$(var.NameApp)"
Description="$(var.NameApp)"
Target="[INSTALLDIR]$(var.NameExe)"
WorkingDirectory="INSTALLDIR">
<Icon Id="IconApp" SourceFile="$(var.PathRscIco)" />
</Shortcut>
<RegistryKey Root="HKCU"
Key="SOFTWARE\$(var.NameCompany)">
<RegistryValue Name="Lnk"
Type="integer"
Value="1"
KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveStartLnk" Directory="ProgramMenuCompany" On="uninstall" />
</Component>
</Directory>
<!-- END - Start Menu Company Folder -->
</Directory>
<!-- END - Start Menu Programs Folder -->
</Directory>
<!-- END - TARTGETDIR -->
<Feature Id="FeatCore" Title="Core Application Files" Level="1">
<ComponentRef Id="CmpAppMain" />
<ComponentRef Id="CmpAppLibs" />
<ComponentRef Id="CmpAppRsc" />
</Feature>
<Feature Id="FeatLnks" Title="Start Menu Shortcut" Level="1">
<ComponentRef Id="CmpLnks" />
</Feature>
</Product>
</Wix>
应用程序是否有清单?我想知道它是否有 HigheSavailable或asInvoker设置,这意味着它可能 有时会提升,而我从你说的话中假设它不会 在那里设置requiresAdministrator
清单几乎总是嵌入在exe本身中,就是这样 需要验证。我猜exe是用一个 嵌入式清单。无需将其包含在安装中 谢谢你的信息。问题在于,由于ClickOnce设置,清单一开始没有生成,然后,一旦我为项目生成或制作了自己的清单,清单也没有嵌入到可执行文件中 ClickOnce publishing将其与为您生成的安装程序一起放置在安装目录中。因为我不想使用click一次(我在阅读了清单后认为它将嵌入exe中),所以我的应用程序没有清单 我现在唯一好奇的是为什么默认行为是要求管理员权限(我认为默认情况下这是最糟糕的事情)
无论如何。。。感谢您的帮助应用程序是否有清单?我想知道它是否有highestavailable或asInvoker设置,这意味着它有时可能会提升,根据您所说的,我假设它没有requiresAdministrator设置。我相信该应用程序确实有一个从visual studio自动生成的清单,但目前未包含在安装包中。我应该试着在安装时包含这个吗?如果是这样的话,它里面可能也有什么需要修改的地方吗?清单几乎总是嵌入在exe本身中,这就是需要验证的地方。我猜exe是用嵌入式清单构建的。无需将其包含在安装中。好的,我将尝试在进一步评论之前查看清单文件和visual studio生成的内容,如果您有任何其他想法,这可能也是原因,尽管在我进行此操作时可能值得调查?很抱歉,暂时没有回复。对我之前说过的或忘记说的话进行一点更正,结果证明您确实需要管理员权限才能运行该应用程序。更重要的是,我已经尝试更改msi构建,以便所有内容都安装到“AppDataFolder\Company”而不是“ProgramFilesFolder\Company”,并且我仍然需要管理员来安装和运行应用程序。此外,我看不到生成的任何清单文件,如果是,它们是由VS临时生成的,我不知道在哪里更正安装程序,以便程序(而不是安装程序)不需要管理员来运行。