2009-03-12 4 views
0

Веб-приложение, которое я пишу выдает эту ошибку compiletimeAsp.net ссылка сборки ошибка

Ошибка 1 Тип или пространство имен имя «Web» не существует в пространстве имен «ATS.System» (вы недостающую ссылка на сборку?)

для каждого файла кода в сборке пространство имен импортируется в каждом файле (как система и System.Web)

Я также добавил ссылки (для обоих) в списке литературы Dir в VS

Я дона я не знаю, что я делаю неправильно

ответ

1

Я подозреваю, что проблема в том, что у вас есть пространство имен, называемое ATS.System - это в некоторых случаях будет путать вещи. Если вы возможно можете, переименуйте пространство имен в другое.

Вот пример, показывающий ту же проблему:

// Foo.cs 
namespace ATS.System 
{ 
    class Foo {} 
} 

// Bar.cs 
namespace ATS 
{ 
    using System.Collections.Generic; 

    class Bar {} 
} 

При перемещении с помощью директивы из декларации пространства имен, то есть изменять второй файл:

// Bar.cs 
using System.Collections.Generic; 
namespace ATS 
{   
    class Bar {} 
} 

, то это нормально - но Интересно, добавляет ли автогенерированный код для ASP.NET директивы use внутри декларации пространства имен: (Избавление от ATS.System, безусловно, будет облегчать движение вперед.

+0

Я не знаю почему, но система создала пространство имен: ATS.System.Masters для одного из моих файлов. Я изменил это обратно в ATS, и он работал блестяще. Спасибо. – matthewdunnam

+0

@kev спасибо. Это учит меня, почему я знал, что папка с именем «система» была плохой идеей! – matthewdunnam

+0

@Matt - Если пространство имен по умолчанию для проекта является ATS, и у вас есть путь к папке «/ System/Masters» от корня папки проекта, когда вы добавляете исходный файл в «Masters», VS автоматически добавит путь к папке пространство имен по умолчанию: ATS.System.Masters. Просто мысль о том, почему – Kev

0

У вас есть пространство имен «ATS.System», которое противоречит пространству имен «Система». Когда компилятор видит «System.Web», он считает, что «Система» относится к пространству имен «ATS.System».

Переименуйте пространство имен ATS.System, если это возможно, или используйте для этого псевдоним. Что-то вроде:

using AtsSys = ATS.System; 

Или:

Imports AtsSys = ATS.System 

Это, конечно, означает, что вы должны поставить AtsSys. перед каждым именем класса, который вы используете из этого пространства имен.