今天学着PetShop做抽象工厂模式创建DAL,最后生成网页的时候,遇到个问题,老报错,总是抛出异常,[System.IO.FileNotFoundException] = {"未能加载文件或程序集“SmsSystem.SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件。":"SmsSystem.SQLServerDAL"} ,我百思不得其解,为什么会一用反射就异常呢,整个上去我去看反射的IPA,感觉我的用法没错误啊,况且,我看PetShop的例子就是这样差不多的写法,它为什么能用,下午调试了好久还是在出错,我发狠心去和petShop去对比,后来终于发现,它的dll的名字有些怪,和我的不同,它的都是如PetShop.SQLServerDAL.dll这样的名字,而我的就是个SQLServerDAL.dll,我感觉极有可能是这里有问题,因为在wb.config里我配置过
<appSettings>
<add key="DAL" value="SmsSystem.SQLServerDAL"/>
…………
</appSettings>这样一个程序集,搞了好久,请教别人,结果弄清楚,是要项目的属性里设置程序集的名称,就可以生成SmsSystem.SQLServerDAL.dll这样的dll文件
<appSettings>
<add key="DAL" value="SmsSystem.SQLServerDAL"/>
…………
</appSettings>这样一个程序集,搞了好久,请教别人,结果弄清楚,是要项目的属性里设置程序集的名称,就可以生成SmsSystem.SQLServerDAL.dll这样的dll文件
![](https://i-blog.csdnimg.cn/blog_migrate/2ee680acd2fcd52616c7449f2f92989a.gif)
设置,重新生成 ,又出了一点问题,
类型“SmsSystem.BLL.CustEmployee”同时存在于“c:/Windows/Microsoft.net/Framework/v2.0.50727/Temporary ASP.NET Files
/smssystem/3358d7f2/16ba9bb7/assembly/dl3/7296d5df/40ded961_96d8c601/BLL.DLL”
和“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/smssystem/3358d7f2
/16ba9bb7/assembly/dl3/644d894c/4cf8840a_9ad8c601/SmsSystem.BLL.DLL”
中 G:/ASP.NET/SmsSystem/Default.aspx.cs 22
我仔细一看,原来在web项目的bin下面,原来的SQLServerDAL.dll还在,又多了个SmsSystem.SQLServerDAL.dll,哈哈,vs2005又一个没有自动删除掉的多余文件,昨天是一个项目文件AssemblyInfo.cs删除掉后,在相应的删除文件竟然没删除,不过,我把它手工删除掉,OK,一切正常,还是感谢告诉我怎么样改项目的Assembly name的朋友,不然我竟然找好久也不晓得怎么生成带上命名空间的dll。