【发布时间】:2011-06-12 01:37:26
【问题描述】:
我一直在尝试处理 Windows UAC 的“功能”,它会在应用程序中查找单词“setup”或“install”并自动认为它是安装程序。
我尝试按照in this stackoverflow question 的建议添加嵌入式清单,这解决了我在 Vista 和 7 上的问题,但破坏了我在 Server 2003 上的应用程序。
我还尝试了在其他几个网站上找到的一些修复程序。我发现on Microsoft's site 的一个建议是使用.config,而不是.exe.config。它工作得很好,但这不是一个选择,因为它违反了我们所有其他应用程序的约定。
另一个选项是将 assemblyIdentity 节点添加到 manfiest。我试过了,但无法让它工作。
下面是我现在的清单。有什么想法吗?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
</compatibility>
</assembly>
Note: This is a managed C# application. And the manifest has to be embedded into the executable.
谢谢,
皮特
【问题讨论】:
-
为什么需要在非安装程序的名称中使用“setup”/“install”?
-
是公司应用的名称。应用程序中的单词实际上是 Setups,但 UAC 仍然标记它。
-
你能把这个词改成配置吗?
-
我不确定您说“这个词”时指的是什么。如果您指的是应用程序名称,则不,我无法更改名称。我们的建筑师不会这样做。我正在寻找解决方案,而不是解决方法(我希望这听起来不粗鲁)。我可以更改应用程序代码并添加清单等,但我无法更改应用程序名称或配置文件名。
标签: installation windows-server-2003 uac manifest