我有一个.il文件,我可以毫不费力地编译它。我可以给它强命名,所以没有任何问题。但是我不能像我期望的那样通过属性设置文件版本。在使用ilasm时,如何设置程序集的FileVersion?
如果我做一个往返,我总是得到一个.res文件,它确实只包含不可读的二进制数据。这个res文件里面有什么,我可以编辑它吗?
代码不起作用
.assembly myAssembly
{
.custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = { string('1.2.3.4') }发布于 2012-02-08 21:50:39
这个问题可以通过使用.res文件来解决。用ildasm和ilasm做一次往返是不够的。IL文件不引用.res文件。我不得不手动将其添加到ilasm调用中。res文件中的数据似乎包含了写入PE头中的信息,这对我来说是可以的。
所需的最后一个命令行是
ilasm test.il /dll /res:test.res我仍然不知道res文件中到底是什么,但我可以用我手动创建的任何其他程序集的元数据信息来交换它,然后根据需要反编译它以替换原始程序集的元数据。
似乎没有多少人在做这样的事情。
https://stackoverflow.com/questions/9192145
复制相似问题