0

我有一个关于 .NET 反射器的简单问题。我已经从 .NET Reflector 手动反编译了程序集,导出了它的代码并从 Visual Studio 手动重新编译了它的代码并生成了它的程序集(我想要很少的代码更改)。现在我希望这个程序集被另一个反编译了其他程序集的主项目正确引用。但问题是,它抛出了一个异常

“无法选择程序集 xxxx VERSION = 1.0.12.4”

这是问题所在。它会以某种方式选择旧版本,而不是选择正确的版本(我在其中进行了更改,甚至引用了该项目,并且它现在的版本为“0.0.0.0”)。基本上在对代码进行更改之前,它会自行反编译并生成缓存,将所有源文件放在其中。但是现在我想更改一些代码并单独编译整个项目代码,然后在其他程序集可能较旧的主项目中引用该项目。

编辑

手动我在 Assembly.cs 文件中看不到任何可以更改项目中引用的程序集版本的地方。我的问题是我想让 Visual Studio 加载它作为项目引用的程序集版本。程序集编译并放在同一个“调试”目录中。但是当 EXE 启动时它会抛出异常。因为它在某个地方看到了具有以前工作的旧版本的程序集。

问候乌斯曼

4

2 回答 2

2

AssembleVersion向反编译的程序集添加属性

[assembly: AssemblyVersion("1.0.12.4")]

另一种选择是更改其他程序集中的引用 - 您可以使用Reflexil Reflector 插件来完成。

于 2012-11-02T11:47:33.003 回答
0

我发现自己的问题。

我也手动重新编译了那个项目,它是自引用旧的 xxx 程序集。因为它也引用了在第一阶段错误选择的组件。

因此,在我的情况下,解决方案是,简而言之,编译所有程序集(代码),这些程序集直接或间接引用在第一种情况下被拾取的旧版本的程序集。

谢谢

于 2012-11-02T15:46:41.027 回答