我建立了一个网站,然后又建立了一个类库,网站添加引用类库时,可以使用类库生产的dll但是如果把类库移除掉,把dll放在bin里面却不能使用。这样尝试了n遍了,依然是这种情况,你说奇怪不奇怪?我的是windows 2003server操作系统,vs2008,.net3.5。vs我已经从新安装过,补丁也打过更奇怪的是,添加引用后,在项目的属性页的引用项里面应该显示引用的dll文件,但是我的就是没有显示,你说奇怪不奇怪?
调试欢乐多
只要在bin目录下的dll文件都可以被引用的 前提是你得添加引用
http://topic.csdn.net/u/20100316/15/eded881c-73dd-4ebc-904b-3321cc63f53c.html?seed=722101810&r=63979777#r_63979777
添加了引用不能用,然后进一步查找原因,发现我这里根本就不能单独引用dll,单独引用dll找不到命名空间。除非加上生成dll的类库项目才能用。我生成dll就是为了方便使用,但是直接引用dll又不能用,问题就是这么简单,却又决绝不了。期待您的解决方案,Thank you very much for you answer!
打开命令窗后,输入gacutil.exe -i [这里放你的dll带路径的全名]
然后回车
把类库独立成一个项目进行Build.然后引入项目.
如果这样都不能,就是你VS的问题了
群号:29037453
提示:将程序集添加到缓存失败:试图安装没有强名称的程序集。请问是怎么回事?----------------------------------------------------------
以下来之MSDN(我不多说了,别纠缠关于如何操作了,正常操作在我这里不能用,否则我也不问问题了):Bin 文件夹ASP.NET 将网站的 Bin 文件夹识别为特定类型的内容的特殊文件夹。Bin 文件夹用于包含要在您的 ASP.NET Web 应用程序中引用的自定义 ASP.NET 控件、组件或其他代码的已编译程序集(.dll 文件)。您可以将已编译的程序集存储在 Bin 文件夹中,将其他代码存储在自动引用它的 Web 应用程序(如网页代码)中的任意位置。一个典型示例是具有自定义类的已编译代码。可以将已编译的程序集复制到 Web 应用程序的 Bin 文件夹,这样,该类就可用于所有网页。Bin 文件夹中的程序集不需要安装在全局程序集缓存 (GAC) 中。.dll 文件出现于 Bin 文件夹中就足以让 ASP.NET 能够识别它。如果您更改了该 .dll 文件,将其新版本写入 Bin 文件夹,则 ASP.NET 会检测到此更新,以后会将该 .dll 文件的新版本用于新的网页请求。 Bin 文件夹的安全
将已编译的程序集放在 Bin 文件夹中存在一定的安全风险。如果您自己编写代码并编译了它,就知道代码的功能。但是,您应象对待任何可执行代码一样对待 Bin 文件夹中的已编译代码。在对代码进行测试并确信了解其功能之前,务必小心谨慎。
。。
此时,该密钥对并未与项目的程序集建立关联,我们需要打开项目(Project)的AssemblyInfo.cs 文件。此文件具有一个程序集属性列表,默认情况下,在 Visual Studio .NET 中创建项目时将包括这些属性。在代码中修改名为“AssemblyKeyFile”的属性,如下所示:
[assembly:AssemblyKeyFile("C:"MySloutionKey.snk")]这样,编译该项目即生成强命名的程序集。
根据以上的说法,这个错误的解决问题如下:首先打开visual studio 2005命令提示(开始-->程序-->microsoft visual studio 2005-->visual studio tools-->visual studio 2005命令提示),在其中输入:sn -k PetShop.IBLL.snk回车,这样就生成了 PetShop.IBLL.snk,在路径C:"Program Files"Microsoft Visual Studio 8"VC找到 PetShop.IBLL.snk文件,放在IBLL项目的根目录也就是IBLL目录下,然后打开BLL项目的AssemblyInfo.cs,在里面加入如下代码行:[assembly: AssemblyKeyFile("PetSHop.IBLL.snk")],然后重新生成PetShop.IBLL项目,这样一个强命名的程序集就生成了
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++越来越怀疑是vs的问题,可是我都重新安装两遍了,就差重新安装操作系统了,,,