http://community.csdn.net/Expert/TopicView1.asp?id=4678006
http://community.csdn.net/Expert/TopicView1.asp?id=4676985
测试代码:
using System;
using System.IO;
using System.Text;
using System.Runtime.InteropServices; 
using System.Security.Cryptography; 
namespace azheng
{
[Guid("B0BC36BB-03C1-4ea3-B632-640CC3773A20")] /// <summary>
/// Class1 的摘要说明。
/// </summary>
public class azheng17167
{
public string getazheng()
{


         return "测试.";
}
}
}
sn -k myKey.snk<回车> 生成一个名叫myKey.snk的强名称文件,然后将其拷贝到上述工程目录中(与azheng.cs文件同目录)后关闭提示符窗口。 在vs.net的那个类库工程自动生成的AssemblyInfo.cs文件内 把[assembly: AssemblyKeyFile("")]改成[assembly: AssemblyKeyFile("../../myKey.snk ")]
然后按Shift + Ctrl + B键生成dll库(使用debug模式),azheng.dll。这时候,程序集就建立成功了 regasm azheng.dll<回车> 
提示成功注册了类型
将程序集添加到全局程序集缓存中 进入Visual Studio .Net提示符窗口,输入 gacutil /I azheng.dll<回车> 提示:failure adding asembly to the cache
最后一步出错了,请问是怎么回事啊?

解决方案 »

  1.   

    你是说在这里面添绝对路径AssemblyKeyFile("../../myKey.snk ")注册的时候我都是用的regasm F:\asp组件\azheng1\bin\Debug\azheng.dll<回车> 
    gacutil /I F:\asp组件\azheng1\bin\Debug\azheng.dll<回车> 
    这里都是用的绝对路径啊,regasm注册类型成功,但gacutil就错误了
      

  2.   

    sn.exe 不能在 cmd 或者 command 中来用。必须在 VS 03/05 下的 Command Prompt 中来用。也许是这个原因哦
      

  3.   

    谢谢楼上的,我是用的VS的工具里执行的上面的命令[assembly: AssemblyTitle("测试")]
    [assembly: AssemblyDescription("azheng")]
    [assembly: AssemblyConfiguration("zhou")]
    [assembly: AssemblyCompany("旅游")]
    [assembly: AssemblyProduct("绑定域名")]
    [assembly: AssemblyCopyright("azheng")]
    [assembly: AssemblyTrade("17167")]
    [assembly: AssemblyCulture("")] 我后来在AssemblyInfo.cs这个文件里把这些程序集的常规信息添加起后,再注册就成功了,注册里也有azheng.azheng17167这个项了,但用ASP调用的时候
    set a=Server.CreateObject("azheng.azheng17167")
    还是提示错误 '80070002' 
    怎么回事呢