2

マネージ DLL のメタデータ (製品名など) をコンパイル後に変更する方法があるかどうか知りたいです。私はこの質問で知っています: Change Assembly Version in acompiled .NET assembly、彼らはILMergeを使用してILをそれ自体のクローンにマージすることでバージョン番号を更新することに言及していますが、ILMergeコマンドラインフラグを見ると、私は思いませんILMerge は他のプロパティをサポートしています。

これを実行したい理由は、1 つのビルドを多くのクライアントに送信する展開構造を持っているからです。クライアント間で dll がコピーされているかどうかを確認できるように、パッケージ化中に展開された dll にクライアント名をタグ付けしたいと考えています。

4

1 に答える 1

1

私は自分自身の前にこの質問について考えました。アセンブリは非常に使いやすいので、ユーザーが生成したコンテンツを、プログラムが不足しているアセンブリ内に格納できる可能性があることは理にかなっているように思えます。

この一連の推論の問題は、誰かがエンド ユーザーが気付かないうちに DLL の内容を効果的に変更できることを意味することです (これは、ウイルスがどれだけ機能するかということです)。アセンブリがデジタル署名されている場合は、はるかに安全で信頼性が高く、誰かがアセンブリを改ざんしたかどうかを知ることができます。

ただし、アセンブリをビルドする前に小さな変更を加えたい場合は、CodeDom (コードの構造を変更するためのもの) または Reflection.Emit ("IL" を使用してアセンブリを直接ビルドするためのもの) を試してみてください。

于 2013-02-05T15:02:57.720 に答える