2017-10-19 10 views
0

私は数千の行を持つxsltコードを維持する必要があります。 これはずっと前に開発されたもので、xsltcをdllを作成するプレビルドイベントとして実行し、最終的にdllがVisual Studioプロジェクトによって参照されるようにして、ビジュアルスタジオコンソールアプリケーションに統合されています。xsltcによって生成されたdllを難読化する方法

最終実行ファイルを販売するには、ソリューション全体を難読化する必要があります。 私がobfuscateに使用しているツールは、Visual Studioで作成されたすべての実行ファイルとDLLファイルに対して正しく動作しますが、xslt dllを難読化すると、xslt DLLが見つからないというランタイムエラーが発生します。

私が知りたいのは、既にxslt dllを使用しているプロジェクトで作業していた場合、これらのdllの安全なバージョンをどのように管理したのでしょうか?

+0

難読化!=安全 – Pawel

+0

私はあなたに同意します。この問題を解決する方法についてご意見はありますか? – Diego

+1

シナリオやツーリングなどの情報があまりないと具体的な提案をするのは難しいですが、原因はあなたのコードがXSLT DLLまたはその中の型をロードしようとしていることです。難読化はそのDLLの名前を変更していますまたは入力します。難読化ツールでは、コード要素の名前の変更を除外する方法が必要です。 (開示のために、私はそのようなツールを作成する会社で働いていますが、このアドバイスは他のツールにも当てはまるはずです)。 –

答えて

0

xsltcを実行したプレビルドイベントを削除し、入力スタイルシートを出力ディレクトリにコピーされない埋め込みリソースとして使用しました。 スタイルシートがもはや出力ディレクトリにコピーされないように、私はロードコードを少し変更:

XsltSettings settings = new XsltSettings(true, true); 
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("namespace.stylesheetname.xslt"); 
XmlReader embeddedReader = XmlReader.Create(stream); 
XslCompiledTransform xslt = new XslCompiledTransform(); 
xslt.Load(embeddedReader, settings, new XmlUrlResolver()); 

は、今私は私が最終的に難読化でき、単一の実行可能ファイルを持っています。 上記のコードを使用する場合は、開いたファイルを閉じることを再確認してください。

関連する問題