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

每次编译.Net DLL时都需要重新注册。

每次编译.Net DLL时都需要重新注册是因为在编译过程中,DLL文件的结构和内容可能会发生变化,导致之前注册的DLL无法正常使用。重新注册DLL可以确保系统能够正确地加载和调用更新后的DLL。

重新注册DLL的过程通常包括以下步骤:

  1. 打开命令提示符或PowerShell窗口,以管理员身份运行。
  2. 使用regsvr32命令注册DLL。例如,要注册名为example.dll的DLL,可以执行以下命令:regsvr32 example.dll。
  3. 如果注册成功,系统会显示一个弹窗提示注册成功的消息。

需要注意的是,重新注册DLL可能需要在32位或64位的命令提示符或PowerShell窗口中执行,具体取决于DLL的位数和操作系统的位数。

重新注册DLL的场景包括但不限于:

  1. 在开发过程中,修改了DLL的代码并重新编译。
  2. 在部署应用程序时,更新了DLL的版本。
  3. 在使用第三方DLL时,更新了DLL的版本。

腾讯云提供了一系列与云计算相关的产品,其中包括云服务器、云数据库、云存储、人工智能等。具体推荐的产品和产品介绍链接地址可以根据具体需求和场景来确定。

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

相关·内容

C#中的bin和obj文件夹有什么用?

obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。...因为每次编译默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。...2.obj obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。...因为每次编译默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。...因为每次编译默认都是采用增量编译的原因,所以,这个时候,不论你点多少次编译,你会疑惑,明明是更新引用了,为什么新更新的那些函数和接口不存在,这个时候,你可以手工吧obj目录删除掉一下,然后重新引用下

4.2K31
  • 【转】 COM 免注册技术

    今天实际应用时,又进行了一些测试,发现与以前看到资料中一些不同的表现,见最后的【补充】部分 通常,实例化 COM 组件前(包括采用这一技术的 DLL/ActiveX 控件),需要先用 regsvr32...MS 推出 .Net 采用了程序集的方式来避免这个问题,同时也用文件清单的方式给 COM 带来了新的调用方案,由于不需要将类信息写入注册表,COM 文件的放置位置也可以放到 exe 所在文件夹或它的子目录中...COM 类声明的新 manifest,重新编译后的 exe 就实现了免注册功能。...反复用 regsvr32 注册和注销 mycom.dll,结果应该一样,这说明无论 COM 是否已注册,都可正常使用;更极端一点,你只复制 mycom.dll 和 test.exe 这两个文件到其他有...否则,还是像前面描述的那样比较可靠,将类描述信息插入到复制的默认清单文件中,并在更新 COM ,同时发布更新的 COM 和重新编译的 EXE 文件。

    3.1K20

    VS2012程序打包部署详解

    在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。...因为每次编译默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。...如果不需要打包源文件的话,这步可以省略。 ? 6、设置安装注册文件 如果开发的程序中使用了第三方控件,这时在安装往往需要注册到目标系统中,同样Install也为用户提供了此功能。...Install能够通过设置dll文件或OCX文件的注册,首先要添加注册的文件,然后通过设置文件的安装属性来指定注册与否,设置如下图。 ? ?...8、设置程序安装注册表项 一般的应用程序在安装需要考虑程序的注册表项,此步骤可以不用设置。 ? 9、设置程序安装的安装视图 根据自己的需要进行设计即可。 ? ?

    1.4K10

    每次都要重新编译?太慢!让跨平台的 MSBuilddotnet build 的 Target 支持差量编译

    每次都要重新编译?太慢!...不然——当你的项目大起来的时候,就会感受到每次重新编译每次重复调试的过程都要进行漫长等待的绝望和无奈。 如果你正遭遇差量编译失效,每次都要重新编译的问题,那么阅读本文应该能够帮助你解决问题。...$(IntermediateOutputPath)Doubi.cs" /> 上述例子的作用是在编译期间执行一个名为 walterlv-tool.dll 的 .NET Core 应用...当两者都没有指定时,MSBuild 会认定为此 Target 在每次编译都会执行 当两者指定时,MSBuild 会认定为此 Target 需要进行差量执行 不能只指定其中的一个而不指定另一个(MSBuild...任何一个文件不满足此条件,则 Target 都将重新执行。 不是所有的 Target 适合差量编译 注意!不是所有的 Target 适合设置 Inputs 和 Outputs 属性!

    1.2K10

    C#脚本实践(三): 集成到游戏

    lib, 一个dll, pdb看需要 环境配置 C++这边肯定要链接mono.lib, 所以dll要拷贝到exe的目录 除了mono本身外, 还需要.net的runtime assembly, 最精简的情况只需要一个...注册, Unity应该就是这种方法....P/Invoke: 最通用的方案, .Net圈子里用得很多. 缺点是C++这边必须编译DLL, 导出很多函数. 优点是有自动生成的方案, 最常见的是SWIG....VS/MD会自动解析引用的DLL, 写代码的因为有强大的IDE, 智能提示, 语法纠错, 编译检查都是非常好用的....热更新 虽然.net也支持直接从代码转换成可以运行的东西, 但是这里还是参考Unity把脚本编译DLL 热更新的基本原理: 检测到脚本的DLL发生改变就重新载入 mono是以domain为单位load

    1.3K20

    C#脚本实践(三): 集成到游戏

    编译好了就一个lib, 一个dll, pdb看需要 环境配置 C++这边肯定要链接mono.lib, 所以dll要拷贝到exe的目录 除了mono本身外, 还需要.net的runtime assembly...: 直接用mono api注册, Unity应该就是这种方法....P/Invoke: 最通用的方案, .Net圈子里用得很多. 缺点是C++这边必须编译DLL, 导出很多函数. 优点是有自动生成的方案, 最常见的是SWIG....VS/MD会自动解析引用的DLL, 写代码的因为有强大的IDE, 智能提示, 语法纠错, 编译检查都是非常好用的....热更新 虽然.net也支持直接从代码转换成可以运行的东西, 但是这里还是参考Unity把脚本编译DLL 热更新的基本原理: 检测到脚本的DLL发生改变就重新载入 mono是以domain为单位load

    1.6K30

    记一次IIS-Raid后门应急经历

    0x01 缘由 晚上9点学校打电话说官网服务器可能被入侵了,第一间登录服务器发现被装了一堆 360 的产品,360安全卫士,360安全杀毒 等等,之后又重新安装上了卡巴斯基卸载了360 0x02 应急...错误 IS重启和服务器重启无法解决503,因为是学校官网服务器很多发文都在上面,503之后就有一堆老师打电话反应,迫于无奈,只能先把dll恢复,然后重新启动IIS让官网先运行着 dll无法移动和删除...,而这个密码攻击者没有拿到,就只能利用360来接管卡巴斯基 Waf的日志,不明白为什么没阻断,看来规则需要加强了 看了一下dll的导出函数和内存,注册到IIS模块的函数 看到这些函数也就大概能知道这个...Web 应用程序任意处的其他代码会 自动引用该文件夹,典型的示例是为自定义类编译好的代码,可以将编译后的程序集复制到Web应用程序的 Bin文件夹中,这样所有页都可以使用这个类,Bin文件夹中的程序集无需注册...后门,通过IIS-Raid手法将dll注册成IIS后门,然后接着留下.NET后门通过.NET机制来做到权限维持,最后上传了自己寄生虫程序,给自己菠菜和某些广告带流量和关键词,至此被学校相关人员发现,导致痕迹没有清理干净

    1.6K10

    从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探

    service 层,需要清理解决方案,重新编译项目,因为这个时候你的api层的dll,还是之前未修改的代码。...,导致如果需要切换依赖对象的实现类需要修改多处地方。...解耦仅仅是去掉引用耦合,目的是不用在修改了service.dll 层的某一个方法的时候,而停到api.dll这个整个服务, 当项目启动的时候,还是需要将所有的服务注册到主机里, autofac依赖注入...,仅仅是用反射的方法,将service.dll 和 repository.dll 项目服务进行注册,这个过程和引用是一样的,因为如果你引用,当项目编译或启动的时候,也是把层服务全部注入到主机的过程, 所以...但是需要拷贝 .dll 文件 如果你就想要 api 层干净,就是不想引用 sqlsugar 层的话,那就除非是把 sugar下的所有dll文件拷贝进去,其实这样也是可以的,只要把第三方的nuget包生成的

    78630

    asp.net web forms之动态编译

    将会缓存编译后的资源,而之后的请求, 就读取缓存,不在编译。这个是大家知道的。 大家在开发的时候都会使用dlldll就是已经编译好的,放在bin文件夹下。...对动态编译文件的任何更改都会自动使文件的缓存编译程序集无效,并触发所有受影响的资源的重新编译。下次向代码发出请求,ASP.NET 会识别该代码是否已更改,并重新编译 Web 应用程序的受影响的资源。...比如项目引用了某个dll,现在这个dll需要修改,我们打开vs重新更改这个类库,然后得到了最新的dll,再把新dll拷贝到服务器上,这里dll属于依赖项。...如果更改了依赖项,那么在访问程序时,就会重新编译顶级。下面请看msdn上的说明: 在第一次对应用程序发出请求,ASP.NET 按特定顺序编译文件。要编译的第一批项称为顶级项。...最后,其实无论怎么样,程序都要进行最后一次编译,大家知道,.net会将代码编译成IL代码,再有CLR把IL代码编译成机器代码执行。所以最后一步编译成机器代码是肯定逃不掉的。

    1.8K20

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

    当你需要设计面向.Net的语言需要遵循一个体系(.Net平台下的语言支持的一个体系)这个体系就是CTS(Common Type System 公共类型系统),它包括但不限于: 建立用于跨语言执行的框架...而这些代码引用了4个命名空间,但实际上它们只被包含在mscorlib.dll和System.dll中,那么我只需要编译的时候注册这两个dll的信息就行了。...System.dll、System.Data.dll这样使用非常频繁的程序集,我们其实不用每次编译的时候都去手动/r一下,对于需要重复劳动的编译指令,我们可以将其放在后缀为.rsp的指令文件中,然后在编译直接调用文件即可执行里面的命令...AOT编译 CLR的内嵌编译器是即时性的,这样的一个很明显的好处就是可以根据当时本机情况生成更有利于本机的优化代码,但同样的,每次在对代码编译需要一个预热的操作,它需要一个运行时环境来支持...故而每当我们通过VS编译器对项目右键重新生成项目(重新编译),VS都会将引用的程序集给复制一份到项目bin\输出目录Debug文件夹下,我们可以通过VS中对引用的程序集右键属性-复制本地 True/Flase

    4.4K30

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

    而这些代码引用了4个命名空间,但实际上它们只被包含在mscorlib.dll和System.dll中,那么我只需要编译的时候注册这两个dll的信息就行了。...、System.Data.dll这样使用非常频繁的程序集,我们其实不用每次编译的时候都去手动/r一下,对于需要重复劳动的编译指令,我们可以将其放在后缀为.rsp的指令文件中,然后在编译直接调用文件即可执行里面的命令...AOT编译 CLR的内嵌编译器是即时性的,这样的一个很明显的好处就是可以根据当时本机情况生成更有利于本机的优化代码,但同样的,每次在对代码编译需要一个预热的操作,它需要一个运行时环境来支持,这之间还是有消耗的...需要值得注意的一点是:当你试图在已生成好的强名称程序集中引用弱名称程序集,那么你必须对弱名称程序集进行签名并在强名称程序集中重新注册。...故而每当我们通过VS编译器对项目右键重新生成项目(重新编译),VS都会将引用的程序集给复制一份到项目bin\输出目录Debug文件夹下,我们可以通过VS中对引用的程序集右键属性-复制本地 True/Flase

    2.7K63

    Day 03:Blazor Server和Blazor WebAssembly的差异

    Blazor WebAssembly应用运行 解决方案配置启动项目菜单 配置多启动项目 多启动项目配置成功 笔者几个月前开发还可以看到下载了许多dll文件,但可以看到现在Blazor WebAssembly...送到浏览器的文件跟Blazor Server相差不大,因为微软改变了Blazor WebAssembly下载dll的规则,改为只有Component发送请求才会下载到浏览器,大大减轻浏览器的负担。...在 .NET 6预览版或者之前的版本,是多了Startup.cs文件,在ConfigureServices方法中「配置服务」(若有相关Service需要使用,就需要在这里使用依赖(DI, Dependency...)就必须全部网页处理,未免太没效率,于是Blazor将这些页面抽出来,只需要改一个地方即可套用全部网页。...,如果写在程序里面,每次一改都要将程序重新编译,放在appsettings.json中灵活性就比较大。

    3.1K30

    ILRuntime热更新

    项目/教程地址:传送门 IL热更优点: 1、无缝访问C#工程的现成代码,无需额外抽象脚本API 2、直接使用VS2015进行开发,ILRuntime的解译引擎支持.Net 4.6编译DLL 3、执行效率是...反射:编译对一个类型一无所知的情况下,如何在运行时发现类型的信息、创建类型的实例以及 访问类型的成员。反射造成编译无法保证类型安全性。同时反射有较大的开销。What’s GC.Alloc?...优势 无缝访问C#工程的现成代码,无需额外抽象脚本API 直接使用VS2015进行开发,ILRuntime的解译引擎支持.Net 4.6编译DLL 执行效率是L#的10-20倍 选择性的CLR绑定使跨域调用更快速...(将热更DLL里面的委托实例传到Unity主工程用), 就需要注册适配器 应该尽量减少不必要的跨域委托调用,如果委托只在热更DLL中用,是不需要进行任何注册的 04.Inheritance(跨域继承)...//使用Couroutine,C#编译器会自动生成一个实现了IEnumerator,IEnumerator,IDisposable接口的类,因为这是跨域继承,所以需要写CrossBindAdapter

    2.3K30

    数据库连接字符串的处理方法!加密解密连接字符串。

    3.放在注册表里面  事先把连接字符串放在注册表里面,用的时候到注册表里面取值。 优点:安全性高。要想看到注册表里的信息不是很容易的事情吧。...缺点:读取注册需要一定的权限,但是一般的空间是不会开放这个权限的,因为开放了就意味着可以操作注册表,这对服务器就太不安全了。...然后把它编译DLL文件备用 using System; namespace JYK {     ///      /// 取得连接字符串。     ...当然了通过反编译软件还是可以看到里面的代码。 还有就是修改起来不太方便,需要重新编译一下这个类。...如果加上了一个DLL的话,那么只需要重新编译一下这个DLL就行了。项目可以保持不变。 C.连接字符串的存放位置 这个可以根据项目的要求来做,放在哪里都可以,只需要修改一下DLL文件就行了。

    4K80

    c#中开发ActiveX的学习笔记

    严格意义上讲,c#是不能生成纯正ocx控件的,我们在vs.net中新建项目,也找不到专门的"ActiveX项目"新建项,最多也只就能新建"类库"得到一个dll而非ocx(因此我们也无法用传统的regsvr32...来进行程序集的注册,这里要注意一点:在开发机上,项目编译后vs.net会自动将bin\debug\xxx.dll调用regasm注册,但在别人机器上就不行了,为了能在调试模拟其它机器的运行结果,可以在编译后...,手动用类似 regAsm.exe D:\MyDoc\ActiveXDemo\output\ActiveXDemo.dll /u 来反注册(在vs.net命令行模式下) 当然,如果您不勾选3.(2)中所说的...“为com互操作注册”,vs编译便不会自动注册,但是这样调试起来不太方便,另外注册/反注册的RegAsm.exe要起开发环境中的版本一致(比如你开发设置是64位版本,那么反注册也要用64位版本的RegAsm.exe...目录下的文件,再重新生成安装项目,否则有时候会发现activex修改了,但是安装包中包含的dll还是未修改过的版本。

    1.5K50

    实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

    一、使用C#编写com组件   开发环境 :VS2017   1、新建工程:CalcTest(类库项目,根据自己喜好需要取工程名,框架我这里使用的是:.NET Framework 4 ,你可以根据自己的来选....net framework 注:JAVA开发环境指JDK下的bin目录,我的是win7的系统,默认就安装了.NET Framework 4.0 2、在JAVA开发环境中注册新生成的com组件,在客户环境中...把CalcTest.dll、CalcTest.tlb复制到这个路径下面C:\Windows\Microsoft.NET\Framework64\v4.0.30319 注:图片中的InvokeTest.dll...) ④、regasm CalcTest.DLL /CalcTest.tlb 出现以下界面说明注册成功: 注:图片中的InvokeTest.dll和Invoke.tlb就是我们上文的CalcTest.dll...4、查看注册表regedit,HKEY_CLASSES_ROOT中是否有InvokeTest.MyMd5 项,如果有说明注册COM成功。如果没有,请重新注册。重复上面过程。

    2.8K80

    「PHP」以nginx、php-cgi为例,把nginx、php-cgi安装为Windows系统服务

    但是也并不是高枕无忧了,此时的项目环境存在着以下几个问题: 每次开机,都要把所有的软件环境重新运行一遍,因为软件的运行在关机后就停止了,重新开机的时候并没随操作系统的启动重新启动起来; 每次都要把重新这些软件运行一遍...stopargument/stopexecutable 用于指定停止参数和停止执行的操作。...注册php-cgi服务 注册php-cgi服务不仅需要WinSW.exe的支持,还需要xxfpm的支持。...因此,之前下载的xxfpm便是在这里使用的;注册php-cgi服务详细步骤如下: 1.在下载的xxfpm的bin目录下,有三个文件,分别是pthreadGC2.dll、xxfpm和xxfpm.exe,需要的是...pthreadGC2.dll、xxfpm.exe; 2.把pthreadGC2.dll、xxfpm.exe复制到php语言的根目录下,与php-cgi.exe 同级; 3.把下载的WinSW.exe复制到

    1.5K11
    领券