我一直在尝试编辑资源文件,添加对新语言的支持,但这是发生的事情,
在一些dll反编译器中我看不到资源文件,(Resource Turner,PE Explorer ......)
<。>在.Net Reflector中,我看到了资源文件,但我无法编辑它我能够使用Reflector FileDisassembler
工具反汇编dll,这给了我一个C#sln文件,这看起来不是一个完整的项目
但是当我编辑并重新编译项目到一个dll文件,然后把它放回原来的位置时,会产生错误,因为dll无效
任何人都可以帮助我,或者只是告诉我正确的方向。
P.S。 1,显然dll签名过程不是问题,因为这个dll只是一个资源文件,应用程序只是在运行时签名或类似的东西,我不太确定它是如何完成的,但我已经读过了我不需要担心这个。
P.S。 2,我想做的事情是100%可行的,因为有些公司已经做了很长时间的这种方法。
答案 0 :(得分:1)
并非有人关心,但这是解决方案:
关键在于,资源dll无需使用应用程序.snk
进行签名,甚至根本不需要签名,但必须使用主资源dll(eg. App.string.dll
并且卫星dll(eg. /ar/App.string.resource.dll
)具有相同的Public Key Token
(等于1,甚至为空)。
所以简单来说,需要反编译主资源dll,将sattelite dll中的资源添加到主项目中,然后用VS编译它们,这样它们都有相同的公钥标记