0

我正在为我的 .NET 应用程序构建一个 Windows 安装程序,看起来 InstallShield(2012 Spring - Premier Edition)正在将Windows Common-Controls清单添加到我的图标中,并将它们转换为 DLL。

这影响了我的应用程序的性能,因为操作系统在尝试解析启动时的图标图像时遇到页面错误。

这是 IS 附加的清单。

<?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="CompanyName.ProductName.YourApplication"
    type="win32"
/>
<description>InstallShield Icon Res</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="<>"
            language="*"
        />
    </dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel
                level="asInvoker"
                uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>
4

1 回答 1

1

首先简短地讨论一下为什么会发生这种情况。图标表,其中需要存储图标以支持 Windows 安装程序广告,要求“与快捷方式关联的图标文件必须是 EXE 二进制格式,并且必须命名为使其扩展名与目标的扩展名匹配”。因此 InstallShield 会构建正确的格式文件。通过“构建”,我真正的意思是将图标数据填充到模板 EXE 文件的资源中。

那么结果是什么?您可以通过编辑模板来更改生成的清单。模板存储...\Support\_IsIcoRes.exeRT_MANIFEST (24) \ 1. 此文件(尚未)未签名,因为构建过程必须对其进行修改,因此会使任何签名无效,因此您的编辑应该是安全的。也就是说,保留原件的备份以防万一。

于 2015-02-21T14:32:25.857 回答