栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.Net如何生成共享程序集

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.Net如何生成共享程序集

程序集可以是私有或共享程序集:默认情况下,大多数简单程序都包含一个私有程序集,因为它们并不打算由其他应用程序使用。

若要与其他应用程序共享程序集,则必须将它放置在全局程序集缓存 (GAC) 中。

1、用sn.exe 强名称工具,准备强名称密钥

      sn.exe所在位置

     如果安装了Visual Stduio,则这些可执行文件就已经安装到你的系统中,则可以在系统所在  目录program filesMicrosoft SDKswindowsv数字.0bin.

     同时也可以在visual studio command prompt中输入文件名并回车就可以打开!

    命令 

    sn -k  路径名称.snk    

    具体参考:Sn.exe(强名称工具) | Microsoft Docs

2、编写一般程序集,然后强名称化

      .net 6和.net Core 在项目文件中编写

       true
 路径名称.snk

      或者在项目属性中

     

 .net FrameWork 项目,修改AssemblyInfo.cs文件以签名当前程序集:

[assembly: AssemblyDelaySign(false)]
            [assembly: AssemblyKeyFile(@"d:winappmyKey.snk")](请指定myKey.snk文件的正确路径)
            [assembly: AssemblyKeyName("")]

   然后编译生成共享程序集

3、在项目属性中编辑好,程序集版本号、公司等信息

4、将程序集添加到全局程序集缓存中,这里用的是 Gacutil.exe 全局程序集缓存工具将程序集添加到GAC中,GAC目录为C:Windowsassembly

   开发中可在在visual studio command prompt中操作, 安装时,cmd到 Gacutil.exe所在目录执行命令操作

安装: gacutil -i   路径程序集 

卸载: gacutil -u  路径程序集 

安装之后可查看程序集信息: gacutil -l 路径程序集,可以获取

     程序集名称,版本号,本地化区域,Public KeyToken

     如:GacDemo, Version=1.0.0.1, Culture=neutral, PublicKeyToken=ea1d5d9be27430b1

为引用共享程序集做准备

具体参考:Gacutil.exe(全局程序集缓存工具) | Microsoft Docs

5、其他程序引用 具有强名称的程序集

     方法一:在项目中正常  浏览添加引用强名称程序集

    方法二:采用Assembly.Load方式

       举例:

int res = 0;
Assembly GacDemo = Assembly.Load("GacDemo, Version=1.0.0.1, Culture=neutral, PublicKeyToken=ea1d5d9be27430b1");
Type[] data = GacDemo.GetTypes();
foreach (Type T in data)
{
    if (T.Namespace == "GacDemo" && T.Name == "TMath")
    {
      MethodInfo GetMeth=  T.GetMethod("GetShared");
        if (GetMeth != null)
        {
            object o = Activator.CreateInstance(T);
            res = (int)GetMeth.Invoke(o, null);
            //GetMeth.Invoke(o, null);

            Console.WriteLine($"User2 T {res}");
        }
    }
}
Console.ReadKey();  

可参考微软官方:如何:与其他应用程序共享程序集 | Microsoft Docs

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954613.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号