我有一个关于.NET反射器的简单问题。我已经从.NET Reflector手动反编译了程序集,导出了它的代码并从Visual Studio手动重新编译了它的代码并生成了它的程序集(我想要很少的代码更改)。现在我希望这个程序集正确引用另一个主程序,其中包含反编译的其他程序集。但问题是,它抛出了
的例外“无法选择程序集xxxx VERSION = 1.0.12.4”
这是问题所在。它以某种方式选择旧版本并且不选择正确的版本(我在哪里进行了更改,即使该项目被引用,它现在的版本为“0.0.0.0”)。基本上在对代码进行更改之前,它会自行反编译并生成放置所有源文件的缓存。但是现在我想改变一些代码并单独想要编译整个项目代码,然后在主项目中引用该项目,其他程序集可能已经过时了。
手动我在Assembly.cs文件中没有看到任何可以更改项目内引用的程序集版本的位置。我的问题是我想让Visual Studio加载它作为项目引用的程序集版本。程序集在同一个“Debug”目录中编译和删除。但是当EXE发布它抛出异常时。 因为它有一个地方看到装配件的旧版本,以前它正在工作。
此致 乌斯曼
答案 0 :(得分:2)
将AssembleVersion
属性添加到反编译程序集
[assembly: AssemblyVersion("1.0.12.4")]
另一个选择是更改其他程序集中的引用 - 您可以使用Reflexil Reflector加载项来执行此操作。
答案 1 :(得分:0)
我发现了自己的问题。
我手动重新编译该项目,它是自引用旧的xxx程序集。因为它也引用了第一阶段错误选择的那个组件。
因此,在我的情况下,解决方案是,简而言之,就是编译所有程序集(代码),它们直接或间接地引用在第一种情况下拾取旧版本的程序集。
由于