пространство имен не найдено! - PullRequest
6 голосов
/ 15 июля 2011

Я создал решение под названием Foo. Добавлена ​​библиотека классов под названием Foo.Common Добавлено консольное приложение для вызова кода библиотеки из ConsoleApp.

Я сослался на Foo.Common из ConsoleApp и набрал:

using Foo.Common;
public class Program
{
    CommonClass c = new CommonClass();            

    static void Main(string[] args)
    {
    }
}

и получите это обратно:

Error 1 The type or namespace name '**Foo**' could not be found (are you missing a using directive or an assembly reference?) Z:\Foo\Solution1\ConsoleApplication1\Program.cs 3 11 ConsoleApplication1

Почему я получаю это?

что происходит?

Ответы [ 6 ]

6 голосов
/ 15 июля 2011

Убедитесь, что

  • В проекте ConsoleApp имеется ссылка на проект Foo.Common (не не для поиска Foo.Common .dll),

    Screenshot

  • файл содержит директиву using для пространства имен, в котором объявлено CommonClass, и

  • CommonClass объявляется как public.

Итак, ваши файлы должны выглядеть так:


CommonClass.cs in Foo.Common проект:

namespace Foo.Common
{
    public class CommonClass
    {
        public CommonClass()
        {
        }
    }
}

Program.cs in ConsoleApp project:

using Foo.Common;

namespace ConsoleApp
{
    public class Program
    {
        public static void Main()
        {
            CommonClass x = new CommonClass();
        }
    }
}
2 голосов
/ 27 августа 2011

Убедитесь, что в настройках вашего проекта целевая платформа установлена ​​как .NET Framework 4, а не .NET Framework 4 Client Profile.Я получил то же самое поведение, когда он был установлен на Client Profile, и это было исправлено, как только я установил его на обычный .NET Framework 4.

0 голосов
/ 08 сентября 2015

Похоже, что Foo Bar получил эту ошибку, потому что целевая структура его проекта была настроена на профиль клиента.

Просто подумал, что добавлю еще одно «решение» - я создал библиотеку, которая нацелена на 4.5фреймворк.Мой старый проект был tarting 4 рамки.Я получил эту ошибку.

Изменение старого проекта на 4.5 заставило его работать.

0 голосов
/ 15 июля 2011

Я разместил это как комментарий, но я хочу расширить его здесь. Вероятно, происходит то, что он видит использование в качестве утверждения, а не ключевого слова. Похоже, у вас есть что-то вроде следующего:

using System;
namespace TestNamespace
{
  using Foo.Common;
  public Class { }
}

Попробуйте

using System;
using Foo.Common;
namespace TestNamespace
{
  public Class { } 
}

Вместо этого.

0 голосов
/ 15 июля 2011

Вы добавили ссылку на библиотеку? Посмотрите в разделе «Ссылки» в консольном проекте. Если его там нет, вам нужно добавить его.

0 голосов
/ 15 июля 2011

Щелкните правой кнопкой мыши новое консольное приложение / проект и добавьте ссылку и добавьте проект, содержащий пространство имен Foo

...