【问题标题】:Manifest does not work in VS2015清单在 VS2015 中不起作用
【发布时间】:2016-09-27 10:21:18
【问题描述】:

我正在尝试让我的程序写入 HKLM 密钥。为了实现这一点,我尝试创建一个清单文件:

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>

  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
    </application>
  </compatibility>
</assembly> 

但即使有了这个文件,我仍然遇到异常:

"System.UnauthorizedAccessException" in mscorlib.dll 
Cannot write to the registry key.

我正在使用 VS2015。我单击创建新元素,然后选择清单文件。将名称设置为 MyProgram.exe.manifest。然后在项目属性中选择正确的清单。最后,我将 Manifest 文件中的执行级别更改为 requireAdministrator 并重建程序。

但是当我执行 MyProgram.exe 时,它​​永远不会显示 UAC 窗口,并且当我尝试写入 HKLM 时会引发异常。所以我怀疑清单不能正常工作。

请指教。 谢谢!!

【问题讨论】:

  • “然后在项目属性中选择正确的清单”。这没有任何意义,所以无论你在那里做什么,都不要这样做。
  • 非常有帮助,谢谢:/

标签: c# visual-studio-2015 registry manifest registrykey


【解决方案1】:

你可以这样做:

  • 使用管理员运行程序。
  • 没有权限设置权限。

【讨论】:

  • 我尝试以管理员身份运行它。没有帮助。
  • 您可以更换其他电脑,然后运行MyProgram.exe。如果可以运行成功,您可以检查您的电脑配置。
猜你喜欢
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2015-06-05
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多