如何让.NET Reflector选择正确版本的.NET编译程序集?

时间:2012-11-02 11:43:22

标签: c# .net reflection reflector

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

的例外

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

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

修改

手动我在Assembly.cs文件中没有看到任何可以更改项目内引用的程序集版本的位置。我的问题是我想让Visual Studio加载它作为项目引用的程序集版本。程序集在同一个“Debug”目录中编译和删除。但是当EXE发布它抛出异常时。 因为它有一个地方看到装配件的旧版本,以前它正在工作。

此致 乌斯曼

2 个答案:

答案 0 :(得分:2)

AssembleVersion属性添加到反编译程序集

[assembly: AssemblyVersion("1.0.12.4")]

另一个选择是更改其他程序集中的引用 - 您可以使用Reflexil Reflector加载项来执行此操作。

答案 1 :(得分:0)

我发现了自己的问题。

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

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

由于