.NET嵌入清单崩溃XP

问题描述:

我嵌入清单在.NET exe文件,以便它可以请求Vista和Windows 7提升权限,我使用清单如下:.NET嵌入清单崩溃XP

<?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" name="ElevationTest" type="win32"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator"/> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

它在Vista和Windows 7中按预期工作,但会使标准的“...遇到问题并需要关闭...”的XP崩溃。如果我没有嵌入任何清单,那么它会按预期工作,但显然不会在Vista和Windows 7中拥有所需的权限。

什么是生成exe的标准方式,它将在XP中以正确的权限运行并且Vista/Windows 7?

谢谢你,艾伦

+0

我有同样的问题 - 兼容性清单不允许在Windows XP SP2上运行两次我的应用程序 –

我认为清单可能是一个红色的鲱鱼。我刚刚创建了一个嵌入了清单的控制台应用程序,面向.NET 2.0,它在XP SP3上运行愉快。

您是否尝试过在没有嵌入清单的情况下在XP上运行应用程序?另外,你打算使用哪种版本的.NET,它是什么类型的.NET应用程序(WPF,WinForms,服务等),最后(我必须问),是在该XP机器上安装的.NET的正确版本?

+0

感谢您的回复John。 是的,我试图运行应用程序没有清单嵌入和它的作品。 我使用WinForms应用程序将.NET 2.0 SP1作为目标。 在XP机器上安装了正确的.NET版本。有关信息,我正在运行XP SP2而不是SP3。 Alan –

+0

嗯。如果您创建新的WinForms应用程序,应用清单并尝试在XP机器上运行该应用程序,会发生什么情况?这次对XP SP2进行了测试,但对我来说仍然没有崩溃。如果它确实崩溃了,那么我建议修复.NET(我以前见过.NET的行为非常奇怪,而修复通常会将其排除)。如果没有,你是否试过在不同的XP盒子上运行?否则,你是否添加了一个新的处理程序到Application.ThreadException来捕获未处理的异常并查看是否可以捕获崩溃并获取调用堆栈? –

+0

嗨,约翰。 经过更多的实验后,我发现了事故的原因。我正在申请一个强大的名字给我的exe。清单和强名称的结合导致了崩溃。对我而言,强命名并不重要,因此我已将其关闭。 再次感谢您的帮助。 Alan –