首页
学习
活动
专区
工具
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

27030

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

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

1.5K30

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增加了一个注册表项目

65060

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

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

68040

​一款开源.NET程序反编译、编辑和调试神器

咱们今天主要内容是讲讲dnSpyEx(dnSpyEx是dnSpy项目的非官方Fork维护版本)这个开源.NET程序反编译、编辑和调试工具该如何使用。...4款免费且实用.NET反编译工具 .NET反编译神器ILSpy怎么用?...dnSpyEx dnSpyEx是dnSpy(该代码库已于2020年12月21日被所有者归档为只读状态)项目的非官方Fork维护版本,一款开源、功能强大.NET反编译工具和调试器,可用于在没有源代码情况下编辑和调试程序...支持调试 .NET Framework、.NET Core 和 Unity 程序。 支持编辑 .NET Framework、.NET 和 Unity 程序。.....TestSample\bin\Debug\net8.0 使用工具调试程序集中代码 使用工具编辑程序集中代码 使用工具编辑程序集中IL指令 项目源码地址 更多项目实用功能和特性欢迎前往项目开源地址查看

21110

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

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

1K50

.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.8K21

.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,是将程序依赖放到了资源里面。当要加载程序时候,会直接将资源中程序集流加载到内存中。

1K30

.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时编辑器没有给出错误提示,说明代码在这两种框架下是受支持。 ? ?

67010

.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时编辑器没有给出错误提示,说明代码在这两种框架下是受支持。 ? ?

59520

仅反射加载(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
领券