首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2.0之前的.Net 4.5程序集注册

在回答这个问题之前,我想先解释一下.Net和程序集的概念。

.Net是由微软开发的一种软件框架,用于开发和运行各种类型的应用程序。它提供了一个统一的编程模型,使开发人员能够在不同的操作系统和设备上构建应用程序。.Net框架包括了一系列的类库和运行时环境,以及一种称为CLR(公共语言运行时)的虚拟机,用于执行和管理应用程序的执行。

程序集是.Net中的一个重要概念,它是一组相关的代码和资源的集合,可以被.Net运行时加载和执行。程序集可以是一个可执行文件(.exe)或一个动态链接库(.dll)。它包含了应用程序的代码、元数据、资源文件和其他相关信息。

现在来回答问题,2.0之前的.Net 4.5程序集注册是指在.Net Framework 4.5版本之前,将程序集注册到系统中以便在应用程序中使用的过程。

在.Net中,程序集可以通过使用GAC(全局程序集缓存)来注册。GAC是一个特殊的文件夹,用于存储和管理全局共享的程序集。通过将程序集复制到GAC中,并在注册表中添加相应的信息,可以使程序集在系统中全局可见,并且可以在任何应用程序中使用。

注册程序集到GAC的步骤如下:

  1. 使用命令提示符或资源管理器打开GAC文件夹(默认路径为C:\Windows\assembly)。
  2. 将程序集文件(.dll)复制到GAC文件夹中。
  3. 打开注册表编辑器(regedit)。
  4. 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\GACChangeNotification\Default。
  5. 在Default键下创建一个新的字符串值,命名为"Force"。
  6. 将"Force"的值设置为程序集的名称(不包括文件扩展名)。

注册程序集到GAC后,就可以在任何.Net应用程序中使用该程序集,而无需在每个应用程序中复制和引用它。

需要注意的是,2.0之后的.Net版本已经不再推荐使用GAC来注册程序集,而是通过NuGet包管理器来管理和引用程序集。NuGet是一个用于.NET开发的包管理工具,可以方便地添加、移除和更新项目中的依赖项。

对于.Net开发者来说,熟悉程序集的注册和管理是非常重要的,它可以帮助他们更好地组织和管理应用程序的依赖关系,提高开发效率和代码的可维护性。

腾讯云提供了一系列与.Net开发相关的云服务和产品,例如云服务器、云数据库SQL Server版、云存储、人工智能等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET 程序加载上下文

我们编写 .NET 应用程序会使用到各种各样依赖库。我们都知道 CLR 会在一些路径下帮助我们程序找到依赖,但如果我们需要手动控制程序加载路径的话,需要了解程序加载上下文。...带来问题 .NET 加载程序这种机制可能让你程序陷入一点点坑:你可以让你程序加载任意路径下一个程序(dll/exe),并且可以执行其中代码,但你不能依赖那些路径中程序特定类型或接口等...解决方法 实际上 .NET 推荐唯一解决方法是创建新应用程序域来解决非探测路径下 dll 依赖问题,在创建新应用程序时候设置此应用程序探测路径。...- .NET Blog。因为你随时可以指定应用程序探测路径,所以它可能让你程序以各种不确定方式加载程序,于是你程序将变得很不稳定;可能完全崩溃到你无法预知程度。...来进行合并,如果你愿意,也可以使用 ILMerge: .NET 使用 ILMerge 合并多个程序,避免引入额外依赖 ---- 参考资料 Loading .NET Assemblies out

24630

.NET 使用 ILMerge 合并多个程序,避免引入额外依赖

我们有多种工具可以将程序集合并成为一个。打包成一个程序可以避免分发程序时候带上一堆依赖而出问题。 ILMerge 可以用来将多个程序集合并成一个程序。...,这样分发程序时候只需要一个程序即可。...如果你希望在你项目当中进行尝试,可以把所有 /log 参数之后那些程序名称改为你自己名称。 那么在编译时候使用命令 msbuild /t:ILMerge 就可以完成程序合并了。...在这个编译目标执行时候还会将原本三个依赖删除掉,这样在生成目录下我们将只会看到我们最终期望程序 Walterlv.Demo.AssemblyLoading.exe 而没有其他依赖程序。...,如果是控制台程序,则为 exe /out 输出文件名称(或路径)(此路径可以和需要合并程序名称相同,这样在合并完之后会覆盖同名称那个程序) /log 所有需要合并程序名称(或路径) /targetplatform

1K30

WiX安装选项--注册程序到GAC和VS设计时环境

Visual Studio设计时引用组件窗口中看到程序位置和程序运行时位置是不一样,特别是在全局程序缓存(GAC)中程序,通过WiX制作Winodws安装程序时候需要处理这个区别...VS设计时添加引用窗口看到程序位置来自注册表SOFTWARE\Microsoft\.NETFramework\AssemblyFolders – 放在HKEY_LOCAL_MACHINE 下面就是针对所有的用户...WiX要把一个程序注册到GAC,只需要在File 上增加一个选项 Assembly=".net" 就可以了,但是注册到GACdll不会放到安装目录下方了,这就需要通过提供两个Component方式来处理...\build\GACTest.dll" KeyPath="yes" Assembly=".net" /> ...注册了两个Component--RTGACTest和DTGACTest,RTGACTest下File增加了属性Assembly=".net",DTGACTest则没有增加,同时在DTGATest增加了一个注册表项目

63560

使Spring.NETIOC容器支持动态加载程序

当我们发布系统时,有时候希望不用关掉应用程序就能完成发布,但Spring.NETApplicationContext是从AppDomain.CurrentDomain中加载程序集中创建对象...最近我正好有这个需求,就研究了一下Spring相关代码,需要解决问题如下: 1.首先要解决如何动态加载程序 2.其次要找到某种方式告诉Spring在创建对象时候用我们自己加载进来程序 如何动态加载程序...当然,我们还需要一个FileSystemWatcher来监控程序目录,当目录中程序发生变化时,再把新程序复制到新临时目录,然后再加载新临时目录中程序文件。...为了区分出哪个程序才是最新,我们还需要一个全局dictionary来存放最新程序,这个dictionary以程序名字作为key,以最新加载后程序作为value。...AppDomain.AssemblyResolve事件了,因为.net framework认为这个程序它是可以识别的,不需要再触发这个事件了。

66640

.NET 使用 ILRepack 合并多个程序(替代 ILMerge),避免引入额外依赖

,这样分发程序时候只需要一个程序即可。...如果你希望在你项目当中进行尝试,可以把后面那些代表程序名称改为你自己项目中依赖程序名称。 现在在编译时候使用命令 msbuild /t:ILRepack 就可以完成程序合并了。...,后面没有前缀参数都是需要合并程序名称或路径。...这些需要合并参数中,第一个参数是主程序,而后续其他都是待合并程序。区别主程序和其他程序原因是输出程序需要有名称、版本号等等信息,而这些信息将使用主程序集中信息。...而且这些依赖将成为合并后程序依赖,不会合并到程序集中。

67750

.NET Standard中配置TargetFrameworks输出多版本类库

> 二、引用本地程序 在下图中可以看出由于3个不同输出类库中所引用程序是不同,那么当编译时,一定是每个类库进行单独编译,这时就就需要通过某种方式告诉编译器当前编译类库版本是什么,然后添加针对具体版本第三方程序引用...再次添加程序引用,此时加载了 .NET Framework 4.5 ? 添加一个“System.Net.dll”引用来测试一下 ? 添加后,如下图所示 ?....NET Framework 4.5 项目中多了“System.Net.dll”引用。但是 .NET Standard 2.0 前面显示黄色警告符合。...展开所有依赖项,.NET Framework 4.0 与 .NET Framework 4.5 都已经正确引用。 ? .NET Standard 2.0 程序及引用有警告。...注意这里是 PackageReference,而之前程序是 Reference,而且我们也会发现在VS解决方案管理器中并没有出现 packages.config 文件。

2.7K21

.NET 将多个程序集合并成单一程序 4+3 种方法

编写 .NET 程序时候,我们经常会在项目的输出目录下发现一大堆文件。除了我们项目自己生成程序之外,还能找到这个项目所依赖一大堆依赖程序。...四种方法 目前我已知将 .NET 程序与依赖合并到一起方法有下面四种: 使用 .NET Core 3.0 自带 PublishSingleFile 属性合并依赖 使用 Fody 使用 SourceYard...使用 .NET Core 3.0 这种自带发布单一 exe 方法会将你程序全部文件(包括所有依赖文件,包括非托管程序,包括各种资源文件)全部打包到一个 exe 中。...下面说一些 .NET Core 3.0 发布程序一点扩展——.NET Core 3.0 中对于发布程序三种处理方式可以放在一起使用: 裁剪程序(Assembly Trimmer) 提前编译(Ahead-of-Time...最终没有对程序进行任何修改,只是单纯打包而已。 使用 Fody,是将程序依赖放到了资源里面。当要加载程序时候,会直接将资源中程序集流加载到内存中。

85130

.NET Standard 类库使用技巧

在前一篇博客《.NET Standard中配置TargetFrameworks输出多版本类库》中详细介绍了如何创建、配置、条件编译、引用本地程序、NuGet方式引用程序、XML文档输出、编码与DEBUG...比如下图中使用 fileStream.WriteAsync()方法是异步方法,只在.NET4.5及.NET Standard2.0中受支持,在.NET4.0中没有异步方法,只有对应 fileStream.Write...TargetFrameworks> 也就是将 netstandard2.0 放置在第一个位置,因为在VS中编写代码时当前编辑器环境是针对放置在第一个位置.NET版本...我做BIMFACE二次开发接口目标是支持 .NET Framework4.0、.NET Framework4.5 以及 .NET Core版本。...比如我再LogUtils类中写了一个异步记录日志方法,当切换到 .NET Standard 2.0 或者 .NET 4.5时编辑器没有给出错误提示,说明代码在这两种框架下是受支持。 ? ?

64110

.NET Standard 类库使用技巧

在前一篇博客《.NET Standard中配置TargetFrameworks输出多版本类库》中详细介绍了如何创建、配置、条件编译、引用本地程序、NuGet方式引用程序、XML文档输出、编码与DEBUG...比如下图中使用 fileStream.WriteAsync()方法是异步方法,只在.NET4.5及.NET Standard2.0中受支持,在.NET4.0中没有异步方法,只有对应 fileStream.Write...TargetFrameworks> 也就是将 netstandard2.0 放置在第一个位置,因为在VS中编写代码时当前编辑器环境是针对放置在第一个位置.NET版本...我做BIMFACE二次开发接口目标是支持 .NET Framework4.0、.NET Framework4.5 以及 .NET Core版本。...比如我再LogUtils类中写了一个异步记录日志方法,当切换到 .NET Standard 2.0 或者 .NET 4.5时编辑器没有给出错误提示,说明代码在这两种框架下是受支持。 ? ?

58420

仅反射加载(ReflectionOnlyLoadFrom) .NET 程序,如何反射获取它 Attribute 元数据呢?

平时我们获取一个程序或者类型 Attribute 是非常轻松,只需要通过 GetCustomAttribute 方法就能拿到实例然后获取其中值。...但是,有时我们仅为反射加载一些程序时候,获取这些元数据就不那么简单了,因为我们没有加载目标程序集中类型。 本文介绍如何为仅反射加载程序读取 Attribute 元数据信息。...---- 仅反射加载一个程序 使用 ReflectionOnlyLoadFrom 可以仅以反射方式加载一个程序。...Attribute(例如获取程序版本号) Assembly.GetCustomAttributesData() 得到是一个 CustomAttributeData 列表,而这个列表中每一项都与普通反射中拿到特性集合不同...)编译出来程序默认是不带 AssemblyVersionAttribute

2.2K30

.Net Framework 各版本区别

之前.NET Framework1.0中作为插件,而现在是框架一部分。 5. NET Framework精简版 - 一个用于小型设备NET Framework版本 。 6....本地应用托管.NET运行时实例新API。 新API提供比如多线程、内存分配,程序加载等更细粒度上运行时行为控制 。 6. 许多新增和改进ASP.NET Web控件 。 7....在之前.NET Framework1.0中作为插件,而现在是框架一部分。 5. NET Framework精简版 - 一个用于小型设备NET Framework版本 。 6....本地应用托管.NET运行时实例新API。 新API提供比如多线程、内存分配,程序加载等更细粒度上运行时行为控制 。 6. 许多新增和改进ASP.NET Web控件 。 7....本地应用托管.NET运行时实例新API。 新API提供比如多线程、内存分配,程序加载等更细粒度上运行时行为控制 。 6. 许多新增和改进ASP.NET Web控件 。 7.

2.9K10

.NET Core 多框架支持(net45+netstandard20)实践中遇到一些问题总结

问题1:如何发布多个 TargetFramework nuget 包 问题来源 :主要是因为之前类库只提供了 .NET Standard2.0版本。...请注意,将从全局程序缓存(GAC)解析程序,并将使用这些程序替换引用程序。因此,程序目标可能未正确指向您所预期框 架 然后安装 net471框架也安装不了,请问如何解决?...遇到问题是:项目依赖是.net standard 2.0 ,但是用户用net461, netstand 方法net461没有,导致程序报错!...程序打包就遇到了无法在 Linux上打包 net45 程序问题,通过在 Github上跟踪 Issue,终于发现了解决办法。...具体如下: 3.1 问题描述 Target Framework 为 .net framework 4.5 项目,可以不可以在 Linux 下 dotnet build 生成 net45 dll 和

2.1K20

.NET 新标准介绍

对于 .NET Framework 二进制文件,.NET 2.0 标准包含了一个兼容性功能,显著地增加库类,这个你可以参考 .NET 标准库。...这里是 .NET 2.0 标准 APIs 界面的高度概括: ? 如果你想看看 .NET 2.0 标准特定 APIs ,你可以看看 .NET 标准 GitHub 信息库。...该 AppDomain 类型有很多 APIs ,不依赖于创建应用程序域,如获取加载程序列表或登记未处理异常处理。这些 APIs 是整个 .NET 库生态系统中大量使用。...我们设计 .NET Core,是为了它引用程序是 .NET 可移植。...NET 标准被定义为满足所有的 .NET 平台一个独立引用集合。每 .NET 平台使用一套不同引用程序,因此可以自由地在他们选择部分增添新 APIs。

1K80

回顾.Net 20周年发展和51aspx成长

Studio.NET 一部分发布,允许开发人员构建和部署应用程序。...2.而后在之前基础又做了提升,推出了VS2005新增了拖控件,双击添加事件,Pageload函数,首次加载,SQL Connection,极大程度提高了效率。 ​...3. 2006 年左右,微软相继推出了 .Net Framework 2.0 和 3.0 版本。在 3.0 版本中,推出了 WPC、WCF、WF 等框架。...微软官方为了顺应环境也更新特别快,几乎每几个月都会有小更新,MVC配合着.Net Framework一起更新,VS2012时候,基本都开始使用Fwk4.5和MVC4了。...从我们会员注册数量来看,这四年.NET使用者也在逐渐增多。 b.2015年寻求创新和跟上时代脚步,微软决定开启一条全新跨平台产品线:.NET Core,并完全开源。

2.9K30
领券