Ger*_*orm 4 .net reference project-structure visual-studio-2010
我想在Visual Studio解决方案中创建3个项目:
脚步:
我使用向导创建了Business Layer和Common层,没有做任何修改.我设置了引用,一切正常.
然后我创建一个新的Windows服务项目添加到解决方案.我注意到,它与目标平台x86一起添加,而不是任何CPU.我引用了3件事,代码被正确着色,预编译错误消失了:这意味着引用被识别.
当我构建解决方案时,Windows服务项目有编译错误:找不到任何引用的程序集.
这里发生了什么?x86配置导致无法找到"类型或命名空间名称'log4net'(您是否缺少using指令或程序集引用?)"错误?
我强制Windows服务项目使用任何CPU配置.我仔细检查了每个参考文献,它们是正确的.我还是不能参考任何东西.
系统规格:
好吧,你已经找到了答案.Log4net依赖于System.Web.dll,这是一个在客户端配置文件中不可用的程序集.这种依赖的可能核心原因是log4net.Appender.AspNetTraceAppender类,它使用HttpContext类并且需要System.Web.
现在,您需要从库的文档中了解这些内容,或者通过艰难的方式找到它.建筑产生警告,但它只是一个警告,而不是一个错误,容易错过:
C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):警告MSB3253:引用的程序集"C:\ projects\WindowsFormsApplication2\ClassLibrary1\bin\Debug\ClassLibrary1.dll"无法解决,因为它依赖于"System.Web,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a",这不在当前目标框架中".NETFramework,Version = v4.0,Profile = Client ".请删除不在目标框架中的程序集的引用或考虑重新定位项目.
接下来是代码中任何试图引用包含log4net引用的程序集中的类的语句的错误.
C:\ projects\WindowsFormsApplication2\WindowsFormsApplication2\Form1.cs(12,9):错误CS0246:找不到类型或命名空间名称"ClassLibrary1"(您是否缺少using指令或程序集引用?)
您也不会错过,如果您在编写代码时没有逐步构建,则可能会出现很多错误.您专注于错误,并且不会意识到警告是错误的真正来源.另一个令人讨厌的陷阱是,IntelliSense最初很开心,它确实可以正确解析汇编参考.有证据表明警告并非总是产生,纯粹是因为很多程序员似乎都错过了这个警告.我还没有找到一个情况就是这样的情况.不确定.
| 归档时间: |
|
| 查看次数: |
3935 次 |
| 最近记录: |