3

実行時にコンパイルするスクリプト システムを使用していますが、問題なく動作していますが、コード難読化ツールを使用して「悪者」からコードを隠すと、スクリプトが機能しなくなり、エラーが返されます。

エラー: CS0234

型または名前空間名「Objects」が名前空間「TestProgram」に存在しません (アセンブリ参照がありませんか?)

エラー: CS0246

型または名前空間名「Scripter」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

それを修正する方法があるかどうか知っていますか?私は多くの難読化ツールを試しましたが、私のスクリプターではすべて同じことをしているようです。

4

1 に答える 1

2

ほとんどの場合、「スクリプト」がアクセスしようとする公開型を難読化する必要はありません。

これは、適切な属性 ( ObfuscationAttribute ) を含めることにより、最も優れた難読化ツールで実行できます。必要に応じて、タイプまたはメソッドでExcludeプロパティを設定します。true[Obfuscation(Exclude=true)]


編集:

必要に応じて、適切な型を装飾することで、この属性を使用します。

[Obfuscation(Exclude=true, ApplyToMembers=true)]
public class Objects
{
    // ... 

これにより、ほとんどの難読化ツール (この属性に注意を払うように構成する必要があるものもあります) は型を難読化できなくなります。一部の難読化ツールは、内部メンバーを難読化しますが、パブリック API は難読化しません。これは、使用している実際のツールによって異なります。詳細については、ツールのドキュメントを参照することをお勧めします。

于 2012-01-31T00:55:39.950 に答える