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