【发布时间】:2015-04-15 01:00:11
【问题描述】:
我的理解是,您可以右键单击项目并选择New Item,然后选择Application Manifest File,将清单文件嵌入到应用程序中。
我已经这样做了,但是当我转到项目属性并查看应用程序选项卡时,我可以看到清单是灰色的。无论我刚刚创建的清单文件是否在项目中都是这种情况 - 它始终是灰色的。
虽然显示为灰色,但它确实显示使用默认设置嵌入清单。这对我来说是两件事之一 - 1)它是灰色的,因为调试文件夹中没有带有 dll 的清单,所以你必须依赖嵌入的一个或 2)我刚刚创建的那个没有嵌入项目。
如果是 1),并且正在使用嵌入式,那么它在哪里。除了我刚刚创建的那个,我再也找不到了!!
我尝试过重新启动 Visual Studio、重建等。我搜索了互联网,一致认为我所做的应该可以工作。
刚刚发生的另一种可能性是清单文件不适用于 dll 插件:-0
【问题讨论】:
-
在 DLL 中包含清单是非常不寻常的,尽管并非完全无效。绝大多数有效的清单条目仅在它们进入 EXE 项目时才有效。无论你想完成什么,永远不要保密,可能不应该按照你认为应该的方式完成。
-
@HansPassant,真的很简单。我正在为keepass 编写一个附加组件,它是一个DLL。我想在注册表中存储一些设置但是我无法写入注册表,因为我得到了 UnauthorisedAccessException 所以我正在考虑使用清单文件中设置的提升权限运行。然而,这似乎不可能实现!
-
没有。写入 HKCU 而不是 HKLM 中的密钥。
-
试过这个 RegistryKey RK1 = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree);但由于某种原因,我仍然得到 UnauthorisedAccessException。
标签: c#