PETSHOP3.0工厂问题,一天没解决好.研究过的进来看看

MJJ_Hua 2006-03-25 03:15:48
仿PETSHOP3.0自己作了一个MyPet.出现以下问题:
找不到文件或程序集名称“MyPet.SQLServerDAL”,或找不到它的一个依赖项.

在网上查了一下, 也有很多朋友有这种问题, 也试了些解决方法, 但都没能解决. 求解决方案. 100分送上,不够再加.
...全文
260 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lukiya 2006-03-26
  • 打赏
  • 举报
回复
晕,引用都没引用啊……必须要引用的。
ice_frank 2006-03-26
  • 打赏
  • 举报
回复
这个问题应该就是没有进行程序集的引用所导致,WEB项目中要引用其他项目,一定要进行引用。
charles_y 2006-03-25
  • 打赏
  • 举报
回复
2. 为什么我还要在BLL层对SQLServerDAL进行引用才可以正确运行程序(楼上的朋友你是这样的吗)
---------------------------------------------------------

你不指定文件,它怎么知道到哪儿去组装?
terryshi 2006-03-25
  • 打赏
  • 举报
回复
估计楼主没有编译过

1、工厂模式和强名称和程序集没有关系;
2、BLL调用SQLServerDAL的对象,访问数据库。
MJJ_Hua 2006-03-25
  • 打赏
  • 举报
回复
谢谢各位的解释. 还有几点想清楚了解:
1. 这里为什么要用共享程序集,有什么好处, 难道用工厂模式只能用强名称共享程序集这种方式, 不能用私有程序集??
2. 为什么我还要在BLL层对SQLServerDAL进行引用才可以正确运行程序(楼上的朋友你是这样的吗)

俺的QQ 36003196 同时希望有朋友和交流
Lukiya 2006-03-25
  • 打赏
  • 举报
回复
dll的文件名要正确。否则用不了petShop那种。

例如我的命名空间是
LukiyA.Piper.SqlServerDAL
我编译出来文件是
LukiyA.Piper.SqlServerDAL.dll

这样,在Assembly.Load时才能读取正确,而且右面的ClassName也必须是完全的。
例如LukiyA.Piper.SqlServerDAL.UserDAL这个类必须写全完全,不能省略成UserDAL

大概就是这样,我语文不好,说得不清楚,你自己理解。
real_weboy 2006-03-25
  • 打赏
  • 举报
回复
引用那个程序集。
MJJ_Hua 2006-03-25
  • 打赏
  • 举报
回复
TO:Chentianfen(yi) :
根据你的方法, 还是不行. 但我在BLL层加了对SQLServerDAL的引用就可以了,但商务层应该只要对接口的引用就可以了啊 这是为什么, 我看在PETSHOP3.0中的BLL也没有对它进行引用.
MJJ_Hua 2006-03-25
  • 打赏
  • 举报
回复
TO:Chentianfen(yi) :
1>使用sn工具生成强程序集
这个SN我一双击,命今输入框一闪就没了, 怎么用啊, 我从来没用过, 指教.

TO:charles_y(难得糊涂) :
如何追踪看文件名,VS工具不大会用,指教.
charles_y 2006-03-25
  • 打赏
  • 举报
回复
web.config中配置:<add key = "WebDAL" value="MyPet.SQLServerDAL"/>
都没有问题啊......
------

看看你的文件名是不是叫MyPet.SQLServerDAL.dll啊?还有有没有把这个文件添加引用进去
chentianfen 2006-03-25
  • 打赏
  • 举报
回复
不是什么没有配置,是没有加入到程序集中,解决办法:
1>使用sn工具生成强程序集
2>打开VS.net下的命令行,使用gacutil /i MyPet.IDAL的程序集路径,这运行应该不会有问题,但是卸载程序集会有问题,最好的办法是重新启动,虽然我用gacutil /u 程序集命,但是仍然不行
MJJ_Hua 2006-03-25
  • 打赏
  • 举报
回复
web.config中配置:<add key = "WebDAL" value="MyPet.SQLServerDAL"/>
都没有问题啊......
aafly 2006-03-25
  • 打赏
  • 举报
回复
webconfig文件中的配置是否正确
charles_y 2006-03-25
  • 打赏
  • 举报
回复
行 19: string path = System.Configuration.ConfigurationSettings.AppSettings["WebDAL"];
行 20: string className =path + ".Account";
行 21: return (MyPet.IDAL.IAccount)Assembly.Load(path).CreateInstance(className);
行 22: }
行 23: }


-----------------------------------------------
跟踪一下这个path,看看这个文件名对不对,如果这个文件名是 SQLDAL.dll之类的,那就要看看这个SQLDAL.dll中 包含不包含MyPet.IDAL.IAccount的子类
MJJ_Hua 2006-03-25
  • 打赏
  • 举报
回复
“/MyPet”应用程序中的服务器错误。
--------------------------------------------------------------------------------

找不到文件或程序集名称“MyPet.SQLServerDAL”,或找不到它的一个依赖项。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IO.FileNotFoundException: 找不到文件或程序集名称“MyPet.SQLServerDAL”,或找不到它的一个依赖项。

源错误:


行 19: string path = System.Configuration.ConfigurationSettings.AppSettings["WebDAL"];
行 20: string className =path + ".Account";
行 21: return (MyPet.IDAL.IAccount)Assembly.Load(path).CreateInstance(className);
行 22: }
行 23: }


源文件: f:\vsprograms\mypet\dalfactory\account.cs 行: 21


楼上朋友所估计的原因都不存在啊
charles_y 2006-03-25
  • 打赏
  • 举报
回复
最好有代码?

错误原因估计为:
没有编译?
没有这个程序集?(namespace 不正确或者什么的)。

62,074

社区成员

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

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

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

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