【问题标题】:.NET Embedded Manifest Crashes XP.NET Embedded Manifest 使 XP 崩溃
【发布时间】:2011-01-27 05:54:13
【问题描述】:

我在 .NET exe 中嵌入了一个清单,以便它可以在 Vista 和 Windows 7 中请求提升的权限。我使用的清单如下:

<?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 中没有所需的权限。

生成在 XP 和 Vista / Windows 7 中以正确权限运行的 exe 的标准方法是什么?

谢谢, 艾伦

【问题讨论】:

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

标签: .net windows-7 windows-vista uac elevation


【解决方案1】:

我认为清单可能是一条红鲱鱼。我刚刚创建了一个控制台应用程序,其中嵌入了该清单,以 .NET 2.0 为目标,它在 XP SP3 上运行良好。

您是否尝试过在没有嵌入清单的情况下在 XP 上运行该应用程序?此外,您的目标是哪个版本的 .NET,它是什么类型的 .NET 应用程序(WPF、WinForms、服务等),最后(我不得不问),那台 XP 机器上是否安装了正确版本的 .NET?

【讨论】:

  • 感谢您的回复约翰。是的,我尝试在不嵌入清单的情况下运行该应用程序,并且它可以工作。我的目标是 .NET 2.0 SP1 与 WinForms 应用程序。 XP 机器上安装了正确版本的 .NET。有关信息,我运行的是 XP SP2 而不是 SP3。艾伦
  • 嗯。如果您创建一个新的 WinForms 应用程序、应用清单并尝试在您的 XP 机器上运行它会发生什么?这次只是在 XP SP2 上测试过,但我仍然没有崩溃。如果它确实崩溃了,那么我建议修复 .NET(我以前见过 .NET 的行为非常奇怪,并且修复通常会解决它)。如果做不到这一点,您是否尝试过在不同的 XP 机器上运行?如果做不到这一点,您是否向 Application.ThreadException 添加了一个新的处理程序来捕获未处理的异常并查看是否可以捕获崩溃并获取调用堆栈?
  • 嗨,约翰。经过更多的实验,我找到了崩溃的原因。我正在为我的 exe 应用一个强名称。清单和强名称的组合导致了崩溃。对我来说,强命名不是必需的,所以我把它关掉了。再次感谢你的帮助。艾伦
猜你喜欢
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2014-07-07
  • 2023-03-18
  • 1970-01-01
  • 2011-08-05
  • 2012-11-29
相关资源
最近更新 更多