【问题标题】:Why won't Visual Studio 2010 let me select a custom manifest?为什么 Visual Studio 2010 不允许我选择自定义清单?
【发布时间】:2015-02-05 12:38:13
【问题描述】:

我正在用 C# 制作一个 DLL,我希望无需注册就可以在 COM 中看到它。按照其他地方的说明,我在项目中生成了一个新的“app.manifest”文件,并对其进行了编辑以包含我需要的 COM 信息,而不是通用的 UAC 信息。

除了 Visual Studio 不允许我使用它来代替默认清单。当我打开项目的属性时,清单下拉列表被禁用:

我需要做什么来选择和嵌入我添加到项目中的自定义清单?

编辑:“app.manifest”文件位于项目的 Properties 文件夹中。如here 所述,对于免注册 COM,我需要将清单从嵌入默认清单更改为在属性中使用清单。除非出于某种原因它不允许我更改该设置。

编辑 2:当我将输出类型更改为控制台应用程序或 Windows 应用程序时,启用了清单下拉菜单。当 MSDN 明确声明免注册 COM 库需要清单时,为什么要为类库禁用它?

【问题讨论】:

标签: c# visual-studio-2010 com manifest


【解决方案1】:

类库不需要使用该下拉菜单来嵌入清单。

重要提示:您以这种方式将清单嵌入到 C# 库中的唯一原因是使其可通过免注册 COM 使用。如果您不这样做,则不需要清单,并且这些步骤不适合您。走开。

如果你使用 Add -> New Item -> Application Manifest File 将 app.manifest 文件添加到项目中:

...并且将其保存在项目根目录中不在在 Properties 或任何其他子文件夹中):

...它会自动嵌入到 DLL 中。

您可以通过使用文件 -> 打开 -> 文件在构建 DLL 后打开它并确认它包含名为 RT_MANIFEST 的内容来验证它是否自动添加:

特别感谢 Hans Passant 提供了所有这些信息,尽管他针对不同的问题提供了大约六个答案,而不是全部在一个地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多