1

我一直在尝试编辑资源文件,以添加对新语言的支持,但这就是发生的事情,

在某些 dll 反编译器中,我看不到资源文件,(Resource Turner,PE Explorer ...)

资源调谐器

在 .Net Reflector 中,我看到了资源文件,但我无法编辑它

.Net 反射器

我能做的是使用该Reflector FileDisassembler工具反汇编 dll,这给了我一个 C# sln 文件,这似乎不是一个完整的项目

VS

但是当我将项目编辑并重新编译为 dll 文件并将其放回应有的位置时,它会生成错误,因为 dll 无效

任何人都可以帮助我或告诉我正确的方向。

PS 1,显然 dll 签名过程不是问题,因为这个 dll 只是一个资源文件,应用程序只是在运行时或类似的东西中对其进行签名,我不太确定它是如何完成的,但我有读到我不需要担心这个。

PS 2,我想做的事情是 100% 可行的,因为一些公司已经使用这种方法很长时间了。

4

1 回答 1

2

没有人关心,但这里是解决方案:

关键是,资源dll不需要与应用程序.snk签名,甚至根本不需要签名,但主资源dll(eg. App.string.dll)和卫星dll(eg. /ar/App.string.resource.dll)必须相同Public Key Token(等于一个,甚至为空)。

所以为了简单,需要反编译主资源dll,将卫星dll中的资源添加到主项目中,并用VS编译,这样它们都有相同的Public Key Token

于 2015-08-05T04:28:11.550 回答