导航:首页 > 编程语言 > 将dll安装到全局程序集缓存

将dll安装到全局程序集缓存

发布时间:2025-03-06 04:13:17

❶ 如何在vs2017解决方案下添加引用

在使用VS2017解决方案时,可能会遇到“找不到 Microsoft.VisualStudio.Shell.Interop.IVsReferenceManager 服务的实例”错误。网上搜索后发现了一种解决方法,经过实践验证确实有效。具体步骤如下:

首先,打开VS2017目录下的 Developer Command Prompt for VS 2017。然后,将定位到vs2017安装目录下的 /Common7/IDE/PublicAssemblies 文件夹。接着,在该文件夹中输入命令:gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll。控制台会显示“程序集已成功添加到缓存中”的提示。

完成上述操作后,重启VS2017。此时,相关错误应该已经解决,可以正常使用。这个方法对于解决类似的问题可能也有帮助,适用于遇到相同错误的开发者。

值得注意的是,gacutil 是一个用于安装和卸载程序集到全局程序集缓存的命令行工具。通过使用它,可以将 Microsoft.VisualStudio.Shell.Interop.11.0.dll 程序集添加到全局程序集缓存中,从而解决找不到所需接口实例的问题。

另外,如果在其他版本的Visual Studio中遇到类似问题,也可以尝试类似的解决方法,只需将命令中的版本号调整为对应的Visual Studio版本即可。例如,对于VS2019,可以使用 Microsoft.VisualStudio.Shell.Interop.14.0.dll。

总之,通过以上步骤,可以有效地解决VS2017中找不到 Microsoft.VisualStudio.Shell.Interop.IVsReferenceManager 服务实例的问题。希望对遇到同样问题的开发者有所帮助。

❷ 如何把C#编译成的DLL放在一个地方作为全服务器不同域名调用

使用全局程序集GAC

关于GAC,复制点东西给你:

Gac就是C:\WINDOWS\assembly文件夹,中文叫全局程序集缓存,把dll放到这个文件夹里,bin下面就不用放dll了,目的是为了程序集共享。

如何把asp.net网站部署到Gac里面

首先在你Visual Studio的安装目录里找到sn.exe文件,放到cmd里执行
sn.exe -k C:\testKey.snk
这样就会在你C盘的目录下生成testKey.snk密钥文件
然后
VS2003
在网站项目的AssemblyInfo.cs里面的[assembly: AssemblyKeyFile("")]做类似如下配置
[assembly: AssemblyKeyFile(@"C:\testKey.snk
")]
注意这里写绝对路径最好,相对路径很难写
生成网站
这时网站的dll就是个强命名程序集,
打开程序---管理工具---.net framework1.1(或2.0)配置
我的电脑,程序集缓存,右键添加,把刚生成好的dll添加进去,无错的话就添加成功了。

这时你可以把自己bin目录下的dll删了,但这时网页还打不开,对webconfig做如下修改
<compilation
defaultLanguage="c#"
debug="true"
>
<assemblies>
<add assembly="youDllname, Version=1.0.2811.20076, Culture=neutral, PublicKeyToken=c52d31a7559027ce"/>
</assemblies>
</compilation>

至于assembly后面的dll全名怎么写,你可以用反编译工具Reflector.exe去查你的dll,也可以在.net framework1.1(或2.0)配置里面找到你的dll查属性得到。
配好后网页就应该可以打开了,如果打不开,重启下iis

VS2005
要麻烦一点,你生成好snk文件后,第一步,当你确定好网站程序不改了后,点网站发布,在发布里面用固定命名和单页程序集,和对预编译程序用强命名,下面有一个可以选择snk文件的按纽,把snk文件选进去,发布网站,
然后再用上面的方法把bin目录里面的dll加到Gac里面,这时可以把bin目录里面的dll删了。然后配制webconfig如下
<configuration>节点下
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="CE.EIP.CRMBusinessEntities" fullName="CE.EIP.CRMBusinessEntities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=C75F352AFF88DAD1"/>
</assemblyBinding>
</runtime>
这时网站应该可以运行。qualifyAssembly 在2005里面是通知运行时去Gac找dll的方法
基本上是这样,但你第一次很可能操作成功不了,所以要注意如下问题
webconfig永远是在你部署时修改,你要是在开发时修改就有错
当你都配制好后,要重启下iis,你更新dll的时候最好也重启下iis,为什么呢?
因为运行时是先去找C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files
下面的一个叫root 文件里面的dll,如果找到了,就不会去Gac里面找了,重启IIS的目的就是为了把里面的文件删除
并不是所有dll都可以放到Gac里面的,比如ajax.dll系列,因为这个dll会生成xml文档,dll在GAC里面,那xml会生成在哪里呢?所以凡是要生成xml文档的dll都不适合放进去(当然也有解决方案不过麻烦)

❸ 如何在 Visual C#NET 中将程序集安装到全局程序集缓存中

1. 管理工具->Microsoft.NET Framework 2.0 配置->管理->我的电脑->程序集缓存->选中右键"添加"->将程序集添加到程序集缓存。

2. 手动将要安装部署的dll文件拖至系统目录windows下的assembly文件夹下(一般为C:/windows/assembly),此种方法不便于在安装部署时使用。

3. 使用gacutil.exe工具安装:gacutil -i "要注册的dll文件全路径"。

"gacutil.exe”工具为.NET自带工具(C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin)

在开始运行中输入"cmd”进入命令窗口,通过CD选择到"gacutil.exe”文件所在的目录,如在命令行输入: gacutil -i D:/Microsoft.SharePoint.dll

❹ vb.net引用Dll的问题

上级目录不可以,但是为了保证程序路径改变,引用不会被破坏。可以有几个方法:
1.将DLL文件放在程序同级目录
2.将DLL文件放在程序子目录
3.将DLL文件放在System32目录下(系统目录,可以直接引用DLL)
4.可以将DLL文件打包成资源文件,融合到EXE程序中,每次执行判断同级目录是否有DLL文件,不存在,释放资源文件。

阅读全文

与将dll安装到全局程序集缓存相关的资料

热点内容
如何修改按钮在代码中的名称 浏览:260
aa司机app怎么注销 浏览:411
u盘保护文件用什么软件好 浏览:913
ppt无法从此嵌入代码插入视频 浏览:917
扫描文件会保存到哪里 浏览:49
5s苹果通话时怎么录音 浏览:496
什么网站可用医保卡买药 浏览:823
建行信用卡取消微信绑定的手机号 浏览:965
慧编程怎么导入作品 浏览:297
ssd清理工具 浏览:75
ps设置好字体源文件怎么保存 浏览:846
怎么能看到电脑开机密码 浏览:524
电脑怎么查有多少文件夹 浏览:706
大数据对营销有什么好处 浏览:658
怎么搜索视频学习编程 浏览:347
ipad群文件下载在哪里 浏览:546
三线表数据的百分号写在哪里 浏览:1000
445抓鸡教程 浏览:673
nef文件用ps解码 浏览:403
苹果73dtouch锁屏壁纸 浏览:193

友情链接