最基础问题:webForm程序,如何引用dll?提示:未能找到类型或命名空间名称

LvBao_117 2016-02-28 10:07:51
如题,dll也是用C#生成的,为了能复用,打包成dll
现在已经将dll复制到项目的某个目录下了,然后在“资源管理器”里,右击“引用”,添加引用,找到dll,引用成功。可是,我在用dll中的方法时,提示:错误 145 未能找到类型或命名空间名称“C_TextBox”(是否缺少 using 指令或程序集引用?)

请问,到底如何引用dll?
一天了也弄好,望各位高手出手相救,不甚感激
...全文
392 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
我的dll是用vs 命令窗口生成的,网上找的命令csc/target:library C_TextBox.cs
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
没问题,我这本来就是学习用的,全部代码 using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public class C_TextBox { private int startIndex; private int endIndex; public C_TextBox(int p_startIndex,int p_endIndex) { startIndex = p_startIndex; endIndex = p_endIndex; } public string allTextValue() //返回所有文本框的内容和 { TextBox myTB; string inputStr = ""; for (int i = startIndex; i <= endIndex; i++) { myTB = (TextBox)((Page)HttpContext.Current.CurrentHandler).FindControl("TextBox" + i.ToString()); inputStr += myTB.Text.Trim(); } return inputStr; } public void clearAllText() //清空所有文本框内容 { TextBox myTB; for (int i = startIndex; i <= endIndex; i++) { myTB = (TextBox)((Page)HttpContext.Current.CurrentHandler).FindControl("TextBox" + i.ToString()); myTB.Text = ""; } } } 适用于页面上有TextBox1,2,3,……,传入textbox的开始编号和末了编号,如2,8,表示textbox2到textbox8
社会工具人 2016-02-28
  • 打赏
  • 举报
回复
dll文件是经过编译之后生成的程序集 只是引用了程序集但是没有获取里面的类 仍然没法引用 dll扩展是有开发文档支持的 不能提前知道dll里面有什么 看一下dll 程序集引用吧 应该回涉及到反射的一些东西
tcmakebest 2016-02-28
  • 打赏
  • 举报
回复
楼主这种情况应该能够引用的,不妨把DLL拿出来给大家测试一下
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
vs2013中建立的的确是3.5的,可就是不行
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
引用 17 楼 From_TaiWan 的回复:
你图片里明明是.NET 3.5,怎么会提示当前框架4.0呢?要是能确定当前项目是3.5的,那么光靠你提供的内容,看不出问题 实在不行,就不要用VS2013了,在VS2008重新建立项目,既然以前在VS2008能用,估计现在也能 你先可以建立一个测试项目,只把这个dll放进去,写1,2条代码,看能否通过编译 再检查下,是不是以前的vs2008项目,现在直接用vs2013打开的? 选择.NET3.5是在建项目时选的,还是建立起来后设定的?
谢谢大神,转在2008解决了!很激动,今晚不睡觉也要做出效果来,尽管不知道那个错误原因,以后慢慢找,多谢
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
要添加using命名空间才行,VS里面如果引用了dll后,可以自动添加using的,查下vs怎么用
引用已经添加了,在资源管理器中,“引用”里已经有类的名字了,可是没有自动添加using,相反的,我手动加进去,编译提示错误。到底哪里出问题了?dll确认可以工作的
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
引用 1 楼 Jiacker 的回复:
namespace Test { public class A {} public class B {} } 添加了这个dll后,要引用类A里面的方法,需要先 using Test; 然后才会 A a=new A();编译通过;
可是我要引用的类,源码里没有命名空间,是以前和老师做网站时候写的类,源码大致如下 using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; /// <summary> /// </summary> public class C_FillListWithCondition { private string TableName; private string ConditionField; private string ConditionValue; …… 这个类里没有namespace
  • 打赏
  • 举报
回复
要添加using命名空间才行,VS里面如果引用了dll后,可以自动添加using的,查下vs怎么用
Jiacker 2016-02-28
  • 打赏
  • 举报
回复
namespace Test { public class A {} public class B {} } 添加了这个dll后,要引用类A里面的方法,需要先 using Test; 然后才会 A a=new A();编译通过;
秋的红果实 2016-02-28
  • 打赏
  • 举报
回复
你图片里明明是.NET 3.5,怎么会提示当前框架4.0呢?要是能确定当前项目是3.5的,那么光靠你提供的内容,看不出问题 实在不行,就不要用VS2013了,在VS2008重新建立项目,既然以前在VS2008能用,估计现在也能 你先可以建立一个测试项目,只把这个dll放进去,写1,2条代码,看能否通过编译 再检查下,是不是以前的vs2008项目,现在直接用vs2013打开的? 选择.NET3.5是在建项目时选的,还是建立起来后设定的?
道玄希言 2016-02-28
  • 打赏
  • 举报
回复
framework 版本的问题 你工程用 framework4.0吧
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
C_TextBox.dll是用csc/target:libaray生成的,源码在7楼
Poopaye 2016-02-28
  • 打赏
  • 举报
回复
你把整个vs,带错误和解决方案,截个图看下吧
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
引用 11 楼 shingoscar 的回复:
出错的就不是这个项目吧
我源代码是一个class,这个类编译成dll,引用到另一个项目中,另一个项目中出错,代码如下 string inputStr = ""; C_TextBox theTB = new C_TextBox(1, 12); inputStr = theTB.allTextValue(); 编译提示:错误 145 未能找到类型或命名空间名称“C_TextBox”(是否缺少 using 指令或程序集引用?)
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
引用 9 楼 shingoscar 的回复:
1、引用上有没有黄色的感叹号,如果有,通常说明dll和项目之间framework版本不一致 2、双击这个引用,在打开的对象浏览器里确认有没有这个类,如果没有,说明引用的dll不对
双击后,有这个类名,如图;还显示这个dll所在的位置(文件夹)
Poopaye 2016-02-28
  • 打赏
  • 举报
回复
出错的就不是这个项目吧
LvBao_117 2016-02-28
  • 打赏
  • 举报
回复
引用 9 楼 shingoscar 的回复:
1、引用上有没有黄色的感叹号,如果有,通常说明dll和项目之间framework版本不一致 2、双击这个引用,在打开的对象浏览器里确认有没有这个类,如果没有,说明引用的dll不对
没有黄叹号。双击后可以看到有这个类,而且写代码的时候,也有这个类的智能提示,编译时才有错误提示 这个类是vs2008里写的,但版本一样,都是3.5,我现在用的VS2013+Win10
Poopaye 2016-02-28
  • 打赏
  • 举报
回复
1、引用上有没有黄色的感叹号,如果有,通常说明dll和项目之间framework版本不一致 2、双击这个引用,在打开的对象浏览器里确认有没有这个类,如果没有,说明引用的dll不对

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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