在VB.NET中编辑可执行文件的元数据

时间:2012-02-17 16:14:41

标签: c# .net vb.net metadata

我阅读了很多关于更改音乐或图像元数据的内容,但正常的可执行文件呢?如何编辑它们的评论/标题?我正在使用.NET 2

2 个答案:

答案 0 :(得分:1)

您可以通过简单地包含如下所示的程序集属性来指定有关.NET程序集的各种元数据:

<Assembly: AssemblyTitle("ConsoleApplication9")> 
<Assembly: AssemblyDescription("Blah")> 
<Assembly: AssemblyCompany("My Company")> 
<Assembly: AssemblyProduct("ConsoleApplication9")> 
<Assembly: AssemblyCopyright("Copyright © My Company 2012")> 
<Assembly: AssemblyTrademark("")> 

通常将这些文件放在名为AssemblyInfo.vb的文件中并将其编译到程序集中(如果转到project settings - Application | Assembly Information,Visual Studio将根据您设置的设置为您生成此内容。请查看项目文件夹,默认情况下有一个与项目同名的子文件夹,并且上面有.vb文件。)

但是,如果您想更新预编译的.NET程序集,我认为您需要对其进行反编译,更改要更改的清单中的属性并重新编译它。您可以使用ildasm工具执行此操作。如果程序集名称很强,那么你将无法使用与编译时相同的强名称重新编译它。

答案 1 :(得分:0)

评论或标题等属性不会同等地提供给所有文件,因为它们不是由文件系统存储,而是来自文件本身。因此,它们必须是文件格式的一部分,并非所有文件格式都提供此类属性。实际上,许多文件格式根本不提供任何属性(例如.txt)。即使文件格式支持某些属性,Windows也需要安装自定义属性处理程序来提取,解释和修改它们。

可执行文件通过version information resource提供一些只读属性。但是它们不能也不应该被更改,因为这会弄乱文件校验和,打破数字签名等。