私は.Net dllを書いており、アプリケーションと一緒に配布したいとします。どのように私は知り合いのユーザーが、このDLLへの参照を自分のアプリケーションに追加することからVSのコピーをインストールするのを防ぐことができますか?.Net dllが参照として追加されないようにするにはどうすればよいですか?
答えて
ユーザーが参照を追加しないようにする方法はありません。これは、DLLの部分からの受動的なアクションであり、発生を防ぐために行うことはできません。
あなたができることは、参考にする価値のない操作を追加することです。たとえば、DLLのすべての型が内部または非公開の場合、ユーザーがDLL内の型を使用するための参照を追加するだけではなりません。さらに、DLLをあいまいにすると、DLLが難しくなります。
私は真剣にこれが可能か疑問です。たとえそれがあったとしても、完全な推力を伴う組立は、すべての証拠を偽造し、あなたのプログラムであるふりをすることができます。
dllへの参照を追加できないようにすることはできません。しかし、あなたが行うことができることは、彼らが参照を追加する場合、それを使用することを困難にすることです。
コードアクセスセキュリティ(CAS)を使用すると、不正なコードがアセンブリに呼び出されるのを防ぐことができますが、これは呼び出しのパフォーマンスに影響し、この目的のためには過剰です。
もう1つの方法は、dllのすべてを内部としてマークすることです。 dllのクラスにアクセスする必要がある他のアセンブリがある場合は、InteralsVisibleTo属性を使用してフレンドアセンブリにします。これにより、他のアセンブリがdllの内部クラスにアクセスできるようになります。署名されたアセンブリと一緒にこれを結びます(InternalsVisibleTo
の定義で使用するには十分です)。
は、.NETが真の静的リンクを許可していませんが、あなたは1つのアセンブリにあなたのdllとexeファイルをパッケージ化、それ偽物にできる可能性があります
役に立つ「StrongNameIdentityPermission」クラスを見つけるかもしれません。これを行うツールは次のとおりです。 ILMerge 他にもある可能性があります。
ILMergeを使用してすべてをリンクしても、誰かが参照としてのEXEを追加してパブリックメソッドを簡単に呼び出すことができます。 –
DLL(ツール - > Dotfuscator Community Edition)を難読化して、DLLを参照できないようにすることができます。
- 1. .NETのdllプロジェクトから(dll)参照を非表示にするにはどうすればよいですか?
- 2. dllを参照として追加するプロジェクトにDLL設定ファイルを追加するにはどうすればよいですか?
- 3. C#アプリケーションでCベースのDLLへの参照を追加するにはどうすればよいですか?
- 4. .NET Core WebプロジェクトにPostgreSQLCopyHelperへの参照を追加するにはどうすればよいですか?
- 5. .NETプロジェクトでvb6 dll参照にReg-Free COMを使用するにはどうすればよいですか?
- 6. VS 2015/.NET 4.6で参照を追加するにはどうすればよいですか?
- 7. DoctypeがHTMLに追加されないようにするにはどうすればよいですか?
- 8. スクリプトタスクでカスタム.NET 4.0 DLLを参照するにはどうすればよいですか?
- 9. アセンブリ参照のソースコードへの参照を追加するにはどうすればよいですか?
- 10. DLLサウンドを追加するにはどうすればよいですか?
- 11. Scalaでインスタンス化されていないクラスを参照するにはどうすればよいですか?
- 12. プロキシ/ファイアウォールを介してWeb参照を追加するにはどうすればよいですか?
- 13. Visual Studio 2015でExcel 2016のCOM参照を追加するにはどうすればよいですか?
- 14. Win32 DLLを参照するアセンブリをロードするにはどうすればよいですか?
- 15. asp net coreプロジェクトのクラスライブラリプロジェクトへの参照を追加するにはどうすればいいですか
- 16. dotnetcore出力に.dll参照を含めるにはどうすればよいですか?
- 17. 高度なUIプロジェクトでdllアクションを参照するにはどうすればよいですか?
- 18. アセンブリ参照をプログラムにプログラムで追加するにはどうすればよいですか?
- 19. .NET Coreプロジェクトで.NET Frameworkプロジェクトを参照するにはどうすればよいですか?
- 20. ユーザーがC#でファイルを参照できるようにするにはどうすればよいですか?
- 21. VirtueMartの「参照」ページに「数量」を追加するにはどうすればよいですか?
- 22. Cognos CAM Jarに参照ライブラリを追加するにはどうすればよいですか?
- 23. F#プロジェクトにC#アセンブリ参照を追加するにはどうすればよいですか?
- 24. odoo、内部参照を引用レポートに追加するにはどうすればよいですか?
- 25. Java:CanvasがJFrameに追加されたときにキャンバスのサイズが変更されないようにするにはどうすればよいですか?
- 26. TextBoxに行を追加/削除しないようにするにはどうすればよいですか?
- 27. SSISスクリプトタスクからMicrosoft.SqlServer.DTSRuntimeWrapへの参照を追加するにはどうすればよいですか?
- 28. 参照が変更されたときに元のオブジェクトを変更しないようにするにはどうすればよいですか?
- 29. PowerShellに.NETのenum値を "参照"させるにはどうすればよいですか?
- 30. 同じソリューションで別のプロジェクトへの参照を追加するにはどうすればよいですか?
必要に応じて、無料の難読化ツールがVisual Studioに組み込まれています。 (Tools - > Dotfuscator Community Edition) –
多くのおかげで - 私は確かに私のアセンブリを確保するために見ていますが、私には、DLLのすべての型がプライベートまたは内部の場合、そのDLLはあまり有用ではないだろう。私も難読化を見ています - Dotfuscator CEですばやく遊んでいましたが、CEは十分強力に見えないので、プロ版を入手する必要があります。 –
他のアセンブリをあなたの友人にすることができ、内部型にアクセスできるようになります –