Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Installation Wix安装的应用程序(和快捷方式)显示管理员符号_Installation_Wix_Icons_Admin - Fatal编程技术网

Installation Wix安装的应用程序(和快捷方式)显示管理员符号

Installation Wix安装的应用程序(和快捷方式)显示管理员符号,installation,wix,icons,admin,Installation,Wix,Icons,Admin,成功创建和测试应用程序后,我还使用Wix手动创建了该应用程序的安装程序,而不是VS提供的ClickOnce 无论如何,安装是成功的,将所有注册表项放置在正确的位置,对于需要它们的文件也是如此,并且快捷方式(所有快捷方式都会在之后清理) 这个问题并不重要,我只是很挑剔:D 在Wix安装程序正在安装的主exe文件上,以及指向该文件的快捷方式上,图标右下角有蓝色和黄色的管理屏蔽。应用程序不需要管理员权限才能正常工作,也不需要实际启动UAC或以管理员身份运行(除非通过右键单击>以管理员身份运行明确完成)

成功创建和测试应用程序后,我还使用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临时生成的,我不知道在哪里更正安装程序,以便程序(而不是安装程序)不需要管理员来运行。