首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将程序集清单添加到.NET可执行文件?

如何将程序集清单添加到.NET可执行文件?
EN

Stack Overflow用户
提问于 2011-11-15 19:12:39
回答 3查看 47.9K关注 0票数 33

如何将程序集清单添加到.NET可执行文件中?

程序集清单是一个XML文件,它被添加到具有资源类型.NET (24)的可移植可执行文件(PE)中。

程序集清单用于声明有关可执行文件的许多内容,例如:

  • 如果我想禁用DPI缩放,因为我是一个优秀的开发人员:
  • 我可以声明我是在Windows 7上设计和测试的,我应该继续依赖Windows 7中的任何bug
  • 我可以声明我是一个优秀的开发人员,不需要文件和注册表虚拟化
  • 我可以声明,我依赖于Microsoft 库的特定版本6:
  • 我可以声明,我依赖于特定版本的GDI+:

在旧日,我们将创建一个资源脚本文件(*.rc),例如:

wumpa.rc

代码语言:javascript
复制
   1    24    AssemblyManifest.xml

将该文件添加到项目中,编译器将编译.rc文件;包括最终可执行映像中的资源。

除了Visual 2010似乎没有向项目添加资源脚本文件的方法

如何在Visual 2010中向项目添加资源脚本?

如何在Visual 2010中向项目添加程序集清单?

备注:任何解决方案都必须在有源代码管理和多个开发人员的环境中工作(例如,可能没有安装二进制文件的硬编码路径会破坏构建,而不会工作)。

奖金喋喋不休

Update:Michael建议可以使用项目属性对话框来包含程序集清单,但他没有指明在哪里

更新:我尝试过的东西:

  • 在项目属性屏幕上,选择Application.选择无线选项图标和宣言。在下,保留Embed manifest with default settings的默认选项

无法工作,因为它嵌入了带有默认设置的清单,而不是我的设置。

  • Manifest下,将组合框选项更改为Create application without a manifest

不起作用,因为它没有嵌入任何清单

  • Resources下选择资源文件无线电选项:

由于无法选择程序集清单(或包含程序集清单的资源脚本),因此无法工作。

  • Resources下,选择资源文件无线选项,然后输入程序集清单文件的路径:

无法工作,因为Visual在显示程序集清单时会阻塞

  • Resources下,选择资源文件无线选项,然后输入资源脚本文件的路径:

无法工作,因为Visual在显示资源脚本时会阻塞

  • AssemblyManifest.xml添加到我的项目中,然后在Manifest组合框中查找它:

无法工作,因为程序集报表文件未被列为选项

我还有十几件事情可以继续截取(向解决方案中添加一个.rc文件,在下拉列表中查找它,选择"no清单“并将wumpa.rc构建操作更改为各种内容,使用单独的资源编译器手动构建.rc文件,或者使用预构建/msbuild步骤,并选择该.res文件作为我的资源)。我将不再为我的问题增加更多的内容,并希望得到答案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-12 23:53:35

如果要向应用程序的清单中添加自定义信息,可以执行以下步骤:

  1. 右键单击解决方案资源管理器中的项目。
  2. 点击“添加新项目”。
  3. 选择“应用程序报表文件”。

这会将名为app.manifest的文件添加到项目中,您可以根据需要打开和修改该文件。

类似的步骤,使用屏幕截图,从MSDN上的将托管应用程序声明为DPI感知的中取消:

  1. 在解决方案资源管理器中,右键单击项目,指向Add,然后单击New
  2. 在“添加新项”对话框中,选择“应用程序报表文件”,然后单击“添加”。将出现app.manifest文件。

  1. 复制并粘贴以下文本到app.manifest文件中,然后保存。
  2. 在解决方案资源管理器中,右键单击项目,然后单击Properties以验证是否使用了

  1. 您的应用程序现在显示为需要“为Windows设计”,并且是
代码语言:javascript
复制
- disables file and registry virtualization
- disables DWM scaling of applications
- announces that you were designed and tested on Windows 7 and Windows Vista
- takes a dependency on Common Controls library version 6 (enabling the use of visual styles by the common controls)

票数 27
EN

Stack Overflow用户

发布于 2012-08-02 14:32:13

我安装了带有Service 1的VisualStudio2010Professional。我运行的Windows 7终极64位。如果我遵循这些说明,项目属性将在资源块中显示“嵌入默认设置的清单”,并且该选项也被禁用!生成时,清单不会嵌入到DLL中,因为我通过在资源视图中打开DLL进行了验证。

但是,如果我:

  1. 在解决方案资源管理器中找到添加的app.manifest文件
  2. 右击并选择“属性”
  3. 将Build属性从"None“更改为”“
  4. 重建

清单文件已正确嵌入,我可以通过将DLL加载到资源视图来验证该文件。应用程序属性中的报表设置仍然显示为“带有默认设置的嵌入清单”,并且仍然是禁用的。

票数 6
EN

Stack Overflow用户

发布于 2011-11-15 19:26:37

在Visual 2008中,这可以在“项目属性”窗口中完成。我几乎肯定2010年的情况是一样的。右键单击项目,选择“属性”,然后在“应用程序”选项卡中选择清单。您必须先将它添加到您的项目中,但是您可以通过添加一个现有文件轻松地做到这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8141795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档