程序集是.net应用程序生成的exe和dll才叫程序集,
编译器编译出来的中间语言生成的exe和dll才叫程序集,程序集里面其实就是各种类库
其他的应用程序exe文件不是程序集,dll是动态链接数据库
程序集是什么
就是源代码编译成IL后的中间代码文件.
引用DLL技巧:
1.如果一次性引用很多dl 可能加不进来 因为有些项目已经引用了 所以最好一部分一部分的来
2.项目需要的都引用了 却显示没有引用 要修改一下要引用的文件里面的内容 打开一下就行 然后点击生产 vs才能读取新的dll 也解释不了为什么
全局程序集缓存
安装全局程序集缓存
将dll添加到assembly(全局程序集缓存)
方法一:vs2019》工具》命令行》开发者命令提示
输入:gacutil.exe -i G:NPOI.dll
添加的路径不能为有空格,尽量用英文路径
例如G: 1 学习 3 后台 1 C#.NET (这样就不行会报错)
方法二:直接拖到C:Windowsassembly文件夹里
验证是否安装成功
依然是之前的命令界面
gacutil -l "NPOI" (注意是L的小写)
卸载全局程序集缓存
C:Windowsassembly里选择指定的程序集缓存鼠标右键点击卸载
全局程序集缓存存放与导出
南方基地生产信息系统在服务器里发布在IIS下的代码找不到指定的dll,但是程序却能运行,本机上有找不到的dll,那么服务器调用的dll是在哪里调用的呢?
可能服务器存在全局程序集缓存,因为服务器的dll是可以以全局程序集缓存方式进行存放的
修改第三方类库的内容
南方基地生产信息系统大部分的dll都是由东软公司封装的,但我要调试代码并且发布代码,
第一个问题:假如是封装的内容有错,我想能把封装的代码进行反编译后再进行修改。
第二个问题:就是服务器上有一堆的文件,假如我只修改了其中一个文件的其中很少一部分代码,我只想替换修改的代码文件,发布后只替换同名称的文件,因为编译后的文件的名称会有所改变(asp.net项目),那么怎么才能坐到只替换修改后的文件呢?
第一个问题就是堆封装后的反编译的dll,微软有推出专门的插件,不过要花钱购买,然后就是逐个反编译,然后自己再根据环境逐个编译(很麻烦)。
第二个问题:如果不是很复杂的代码修改,首先先编译项目然后根据大小和反编译的内容找到要修改的文件,然后就用IL方法修改引用的文件名称内容,修改后生成对应的dll。最后去修改该名称与服务器一致。
元数据。
未能找到元数据文件
https://www.cnblogs.com/lfhappy/articles/6423569.html
编号113:未能找到元数据文件
有项目引用,但是没有依赖了
全局程序集缓存工具
https://www.cnblogs.com/menyiin/p/4793292.html
编号109:全局程序集缓存工具(Gacutil.exe)用法详解.zip
https://docs.microsoft.com/zh-cn/dotnet/framework/tools/gacutil-exe-gac-tool
编号111:Gacutil.exe(全局程序集缓存工具)
gacutil.exe的位置
C:Program Files (x86)Microsoft SDKsWindowsv10.0AbinNETFX 4.6.1 Tools
编号110:ILMerge合并多个DLL
http://www.cnblogs.com/knowledgesea/p/5284645.html



