首页 / 知识
关于反射:确定程序集是否是.NET框架的一部分
2023-04-14 17:04:00

Determining if an assembly is part of the .NET framework如何从程序集名称或程序集类(或其他类似的类)中判断程序集是否属于.NET框架(即 到目前为止,我已经考虑了PublicKeyToken和CodeBase属性,但是对于整个框架而言,它们并不总是相同的。 我想要此信息的原因是要获取我的EXE文件正在使用的程序集的列表,这些程序集必须在客户端计算机上,因此我可以在不使用Visual Studio安装程序系统的情况下将正确的文件打包在安装程序文件中。问题是,我不想提取任何.NET框架程序集,而是希望它是一个自动过程,只要主要更新完成,该过程就很容易推出。 最终的解决方案是有一个IsFramework属性...:) 否,它不是以"系统"开头。您可以检查" WindowsBase"这是一个框架程序集。 您也不能检查PublicKeyToken,因为还有其他使用"默认"键签名的Microsoft程序集,但它们不属于.NET Framework(Visual Studio程序集)的一部分。 执行此操作的最佳方法是获取已安装的.NET框架的集合,并检查目标程序集是否是其RedistList( FrameworkList.xml可在以下位置找到:
我不得不处理完全相同的问题。不幸的是,到目前为止给出的所有答案都不足以安全地确定程序集是否是.NET Framework的一部分。 Microsoft将一个名为
使用此"标记"检查程序集是否为框架程序集。检查公钥也不会受到损害。 为此,我使用通过AssemblyProductAttribute嵌入到程序集中的产品名称。
我正在使用此技术在应用程序的"关于"屏幕下按产品对部件进行分组,对我来说似乎工作得很好。 我怀疑最可靠,最通用的方法将是PublicKeyToken。是的,不止一个,但是它将是一个有限的列表,并且列表不会经常更改。 为此,您可能只需要一个程序集名称的白名单-该列表在框架的各个版本之间也将是有限的和静态的。 安装Visual Studio时,您可以通过 例如 您可以轻松地使用这些文件来建立程序集的静态白名单。 如果您知道所有DLL都不在GAC中,则可以检查每个程序集是否都在GAC中。如果是这样,请勿复制它。如果不是,请复制它。 Assembly类上有一个名为GlobalAssemblyCache的属性。在某些情况下,这显然会比其他情况下更好。 您可以使用反射来查看程序集的发布者,并将其与程序集的路径进行协调。如果找到的程序集的发布者是Microsoft,并且存在于 再三考虑,发布者甚至可能没有必要。该路径下的所有内容都应该是运行时的一部分(除非行为不当的应用程序在不应该出现的地方进行修饰)。 |
最新内容
相关内容
linux命令查看包属性?
linux命令查看包属性?,时间,系统,信息,状态,命令,文件,通讯录,管理,情况,标准,Linux文件相关命令命令一:cat cat命令应该是在Linux中查看文件内linux基本命令框架?
linux基本命令框架?,系统,基础,网络,设备,管理,基础知识,环境,管理系统,概念,技术,新手如何自学linux安装linux系统,把自己喜欢的linux发行版安linux内核属性命令?
linux内核属性命令?,系统,地址,时间,信息,标准,管理,数据,工作,百分比,内核,一般优化linux的内核,需要优化什么参数1、说起优化,其实最好的优化Python中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的靠谱的Python爬虫框架都有哪几个?
靠谱的Python爬虫框架都有哪几个?,官网,培训,爬虫,专文,框架,统计数据,辅助工具,网页,程序,以下内容,一些同学普遍认为仅剩Python才能够顺利实pythonPandas Series对象有哪些属
pythonPandas Series对象有哪些属性?,工具,数据,数字,分析,培训,属性,数据类型,数组,对象,索引,想必大家都知道pandas,它是基于Numpy的一种工具如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类Python图形应用GUI开发框架
Python图形应用GUI开发框架,平台,代码,工具,做好,成都,行业,第三,图片,设备,数据,作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发十个Python Web应用开发框架
十个Python Web应用开发框架,系统,工具,项目,设计,技术,支柱,软件,网站,信息,标准,python是一门动态、面向对象语言。其最初就是作为一门面向python的单元测试框架
python的单元测试框架,代码,生态,信息,标准,测试,分析,工具,环境,条款,活跃,1、AutotestAutotest是Google、Redhat、IBM公司联合开发的分布式python 的异步框架模型
python 的异步框架模型,暂停,流程,状态,地方,概念,培训,时间,任务,队列,框架,python提供了asyncio模块来支持异步编程,其中涉及到coroutines、优秀的GUI Python框架
优秀的GUI Python框架,平台,代码,网站,包装,设备,系统,项目,软件,技术,工具,由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的