在将面向 .Net 4.0 的有效 Visual Studio 2010 解决方案从 Windows 7 迁移到 Windows 10 环境时,我遇到了 CS0234 编译错误:找不到类型或命名空间名称“My-Namespace-Name”(您是否缺少 using 指令还是程序集参考?)。
错误的触发似乎是在我的一个库中引用了第 3 方库https://www.nuget.org/packages/Google.Apis.ShoppingContent.v2/1.16.0.636中的类型,其中“My-Namespace-Name” ' 也被定义。编译在此库中链接的另一个库时出现错误消息。使用 NuGet 安装第 3 方库并支持 .Net 4.0。
我用两个类库创建了一个简单的测试解决方案来演示这个问题。为第一个库安装了第 3 方库。我从第一个库中的第 3 方库中声明了一个ShoppingContentService类型的变量:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Google.Apis.ShoppingContent.v2;
using Google.Apis.ShoppingContent.v2.Data;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Requests;
using log4net;
namespace ClassLibrary1
{
public class Class1
{
//comment out the following declaration the compilation error goes away
private static ShoppingContentService s_service;
public static void Method1()
{
System.Console.WriteLine("hello");
}
}
}
第 2 个库引用第 1 个库。编译指向using ClassLibrary1 的解决方案时重现该错误;陈述:
错误 2 找不到类型或命名空间名称“ClassLibrary1”(是否缺少 using 指令或程序集引用?) c:\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary2\Class2.cs 5 7 ClassLibrary2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClassLibrary1;
namespace ClassLibrary2
{
public class Class2
{
public static void Method2()
{
Class1.Method1();
}
}
}
解决方案文件可从以下网址下载:https ://1drv.ms/u/s!AiZZDdaejTrJrz_9Ayngj9iTopzz
切换到 VS 2017 并不能解决问题,也不能将目标框架更改为 .Net 4.5。
在此先感谢您对这个问题的研究,如果您能对此有所了解,我们将不胜感激!