把自定义组件加入GAC怎么看不到?

最后一只恐龙 2009-01-18 09:39:24
(1)创建了一个自定义组件,通过“添加引用/浏览”方式加入ASP.NET项目,测试已经通过。
(2)编译为Release方式,使用了.snk签名。
(3)建立一个安装项目,在安装项目中添加了GAC目录,然后主输出选择了这个目标,编译为Release。
(4)运行编译出的安装文件,安装成功,C:\Windows\Assembly目录下也看到了安装后的文件。
(5)新建一个ASP.NET项目,在工具箱的选项卡中点击右键,选择“选择项”,在.Net Framework Components却找不到这个组件。

问题:找不到可能的原因是什么?不至于加入GAC后还要用浏览的方式添加引用吧?
...全文
251 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
最后一只恐龙 2009-02-03
  • 打赏
  • 举报
回复
自己顶一下,据MSDN说可以使用安装的方法加入GAC的,但总不成功
最后一只恐龙 2009-01-20
  • 打赏
  • 举报
回复
除了gacutil命令,使用安装程序没有办法注册到GAC吗?
最后一只恐龙 2009-01-18
  • 打赏
  • 举报
回复
哦,我注册过ocx,知道这个步骤。
不过看那些资料都说是创建安装文件,加入到GAC就可以了,应该不需要注册也可以吧。要不还要GAC干什么?
wuyq11 2009-01-18
  • 打赏
  • 举报
回复
要注册
注册dll 或者ocx 利用regsvr32命令
取消注册用regsvr32 /u
注册后不出现注册成功用参数 /s
参考
最后一只恐龙 2009-01-18
  • 打赏
  • 举报
回复
还需要注册?如何注册?
再就是如果在客户那里只安装运行程序,是不是也要注册?
GTX280 2009-01-18
  • 打赏
  • 举报
回复
先注册,然后把这个Dll拖入VS的控件工具箱里
wangping_li 2009-01-18
  • 打赏
  • 举报
回复
除了系统默认放置在GAC中的Assembly如System.Windows.Forms以外,我们也可以添加自己的Assembly:
1)创建一个strong-name的Assembly,例如ToolbarComponent.dll
2)运行gacutil -i ToolbarComponent.dll,把这个Assembly添加到GAC
3)在程序中动态装载:
System.Reflection.Assembly ass=Assembly.Load("ToolbarComponent, Version=1.0.934.20434, Culture=neutral, PublicKeyToken=65f45658c8d4927f");
MessageBox.Show("Is the assembly loaded from GAC? "+ass.GlobalAssemblyCache);
在上面的程序中,ToolbarComponent就是从GAC装载而不是从程序的运行目录下的dll文件中装载,程序目录下不需要放置ToolbarComponent.dll程序也能正常运行。另外,Assembly.Load()中的参数可以通过"gacutil -l"查到。

另外,上面提到了GAC中的Assembly必须是strong-name的。创建strong-name的Assembly的步骤大致如下:
a) 在命令行运行“sn -k keyPair.snk”创建一个密钥文件。这里的sn.exe也是.NET附带的一个工具。
b) 在VS.NET里面修改“AssemblyInfo.cs”文件:
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("..\\..\\keyPair.snk")]
c) 编译项目,就能得到一个strong-name的Assembly。

MSDN中有一些对GAC的介绍,您可以参考:
1)《Assembly Cache Viewer (Shfusion.dll)》
2)《Global Assembly Cache》

.NET Framework中附带了一些和GAC有关的工具,其中包括:
1)Gacutil.exe,一个命令行的工具,用于在GAC中浏览、添加、删除Assembly
2)Ngen.exe,也是一个命令行的工具,用于在GAC中创建Native Image
3)mscorcfg.msc,一个MMC终端,可以图形化完成Gacutil.exe的主要功能。
wangping_li 2009-01-18
  • 打赏
  • 举报
回复
试试:
csc /out:Test.dll /t:library Test.cs /r:System.Web.dll /r:System.Configuration.dll

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧