1

新しい言語のサポートを追加するために、リソース ファイルを編集しようとしましたが、次のようになります。

一部の dll デコンパイラでは、リソース ファイルが表示されません (リソース ターナー、PE エクスプローラーなど)。

リソース チューナー

.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(等しい 1 、またはnullでもあります)。

簡単にするために、メインのリソース dll を逆コンパイルし、サテライト dll からリソースをメイン プロジェクトに追加し、VS でコンパイルして、両方が同じ公開キー トークンを持つようにする必要があります。

于 2015-08-05T04:28:11.550 に答える