我正在为我的.NET应用程序构建一个windows安装程序,它看起来像是InstallShield (2012年)将Windows公共控件清单添加到我的图标中,将它们转换成DLL。
这影响了我的应用程序的性能,因为操作系统在启动时尝试解析图标图像时遇到了页面错误。
下面是附加的清单。
<?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>发布于 2015-02-21 14:32:25
首先,简单介绍一下为什么会发生这种情况。图标表需要存储图标以支持Windows广告,它要求“与快捷方式相关联的图标文件必须以EXE二进制格式命名,以便其扩展名与目标的扩展名相匹配”。因此,InstallShield构建正确的格式文件。我所说的“构建”实际上是指将图标数据填充到模板EXE文件上的资源中。
结果是什么?您可以通过编辑模板来更改结果清单。模板存储在...\Support\_IsIcoRes.exe中,如果在Visual或其他资源编辑器中打开该模板,则可以检查甚至编辑RT_MANIFEST (24) \ 1中的清单。这个文件还没有签名(还没有),因为构建过程必须修改它,因此将使任何签名无效,所以您的编辑应该是安全的。那就是说,保持原版的备份,以防出问题。
https://stackoverflow.com/questions/28623366
复制相似问题