代码之家  ›  专栏  ›  技术社区  ›  Ejrr1085

限制在Visual Studio或其他开发人员项目中加载netframework DLL

  •  0
  • Ejrr1085  · 技术社区  · 6 年前

    我在Visual Studio中有一个Netframework DLL项目,该DLL在发布模式下编译,并在另一个项目中使用。我如何限制其他人加载或使用该DLL,而不是窃取我的DLL并在他/她的项目中使用?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Ejrr1085    6 年前

    我通过内部类和方法找到了解决方案:

    我的dll中的某个类:

    [assembly: InternalsVisibleTo("FriendAssembly")]
    namespace MiLibrary
    {
    
        internal class Class1
        {
            internal static string GetName()
            {
                return "My Name";
            }
        }
    }
    

    另一个课程项目:

    namespace MyApp
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                txbText.Text = MiLibrary.Class1.GetName();
            }
        }
    }
    

    只有 “友谊大会” 有权访问 1类 . “另一个项目” 程序集名称必须为 “友谊大会” (菜单项目->其他项目的属性->应用程序->程序集名称)

    InternalsVisibleToAttribute Class

    Stackoverflow中的相关问题:

    Protect C# DLL from third party

    How to protect dlls?