这很奇怪。
我用 C# 创建了一个新的 Windows 服务,并且想要重用我们之前在类库中创建的一些代码。
该项目与服务一起加载到解决方案中。两者都针对 .NET Framework 4.0(不是客户端配置文件)。
我尝试添加项目引用,并且它工作了一段时间。在处理了我正在重写的一些旧代码后,当项目再次编译时,它提示它不再识别 using 语句的 namespace 。
我已确保清理解决方案并重建,但没有骰子。有时VS会遇到糟糕的一天,所以我重新启动了VS,但这也不起作用。
然后我构建 DLL,并通过“浏览”添加对它的引用,也没有骰子。然后我在另一个项目上测试了它,但是添加后它立即起作用,所以它不是DLL。
然后,我检查了解决方案中的其他库,但我能够在服务中添加对它们的引用并毫无问题地访问它们的命名空间。
我在这里没有想法,有人知道在这里做什么吗?
谢谢
尼克。
差点忘了:奇怪的是,如果我打开“类” View ,并展开“引用”部分,命名空间/dll 也不会显示在那里...这是一个真正的难题...
最佳答案
我应该更加注意警告:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):警告 MSB3253:无法解析引用的程序集“”,因为它依赖于“System. Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,它不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中。请删除对不在目标框架中的程序集的引用,或考虑重新定位您的项目。
所以,我是一个准备好检查 DLL 的目标框架而不是 Windows 服务的白痴:)
问题是我的 DLL 使用 System.Web,它不是 .NET 4 Client Profile 框架目标的一部分。将服务的目标框架更改为 4.0 修复了该问题。
关于C# Windows Service 找不到 dll 的命名空间,可在其他项目中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6953504/