BC30560: "default_aspx" является неоднозначным в пространстве имен "ASP"
Когда я скомпилировал свою последнюю программу asp.net и попытался запустить ее на тестовом сервере, я получил эту ошибку
Line 46: Dim dependencies() As String
Line 47: CType(Me,Global.System.Web.UI.Page).AppRelativeVirtualPath = "~/default.aspx"
Line 48: If (Global.ASP.default_aspx.__initialized = false) Then
Line 49: dependencies = New String(0) {}
Line 50: dependencies(0) = "~/default.aspx"
Source File: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb Line: 48
Подробные ошибки при расширении вывода компилятора...
Microsoft (R) Visual Basic Compiler version 8.0.50727.3053
for Microsoft (R) .NET Framework version 2.0.50727.3053
Copyright (c) Microsoft Corporation. All rights reserved.
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(48) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.
If (Global.ASP.default_aspx.__initialized = false) Then
~~~~~~~~~~~~~~~~~~~~~~~
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(51) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.
Global.ASP.default_aspx.__fileDependencies = Me.GetWrappedFileDependencies(dependencies)
~~~~~~~~~~~~~~~~~~~~~~~
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(52) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.
Global.ASP.default_aspx.__initialized = true
~~~~~~~~~~~~~~~~~~~~~~~
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(76) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.
Private Sub __BuildControlTree(ByVal __ctrl As default_aspx)
~~~~~~~~~~~~
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(100) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.
Me.AddWrappedFileDependencies(Global.ASP.default_aspx.__fileDependencies)
~~~~~~~~~~~~~~~~~~~~~~~
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.1.vb(31) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.
Return New ASP.default_aspx
~~~~~~~~~~~~~~~~
Я проверил несколько вещей, и все они оказались в порядке:
[*] По умолчанию нигде не определено дважды
[*] Все работало над последним релизом 1 неделю назад
[*] Нет старых файлов, которые все еще остаются с скомпилированными файлами. Также я очищал временные файлы много раз.
[*] Я пробовал с другими файлами aspx, и все они дают неоднозначную ошибку (ошибка в разных исходных файлах...)
[*] Оригинальный источник работает просто отлично! только ошибка отображается в скомпилированном коде.
Любые идеи или любые подсказки о том, как решить эту двусмысленность.
Спасибо СК
9 ответов
Хорошо, вот что я нашел, потратив три дня на эту проблему.
Наконец, я решил, что, если я удаляю все проекты из решения, кроме одного (который вызывал проблему), я мог бы изолировать его до default.skin. Проблема казалась очень ошибочной, потому что она начала исчезать, если я удалил определенные строки из этого файла. Однако это было непоследовательным, и проблема возникала и исчезала наугад.
Поэтому, потеряв все надежды исправить это в коде, я решил попробовать по-другому. Я изменил параметр команды aspnet_compiler с ключа -prefix (для каждой папки создается dll) на -o (весь скомпилированный пользовательский интерфейс помещен в одну dll), проблема ушла!!!
Кажется, что проблема связана с некоторой ошибкой в aspnet_compiler. Это было вызвано в этой версии как-то, что я не мог понять.
Я думаю о переходе на более стабильную asp.net 3.5SP1 (или, может быть, подождать asp.net 4.0) какие-либо предложения?
Я только что решил эту проблему с помощью следующей ссылки: http://www.netomatix.com/development/usercontrols2.aspx
Добавьте это на странице aspx или ascx ClassName="MyModule"
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="MyModule.ascx.vb" ClassName="MyModule" %>
Я столкнулся с этой проблемой при использовании проекта при изменении имени / пространства имен библиотеки, на которую ссылается этот проект.
Проблема в том, что в папке проекта Bin есть копия DLL с каждым именем / именем пространства имен.
Удаление поглощающей папки проекта Bin и ее восстановление решены.
Я решил эту проблему, поместив пространство имен над классом
Namespace yournamespace
Public Class yourclass name
end class
end Namespace
После того, как я проверил те же предметы, что и Самуил:
[*] По умолчанию нигде не определено дважды
[*] 1 неделя назад все работало на другом компьютере
[*] Нет старых файлов, которые все еще остаются с скомпилированными файлами. Также я очищал временные файлы много раз.
[*] Я пробовал с другими файлами aspx, и все они дают неоднозначную ошибку (ошибка в разных исходных файлах...)
[*] Оригинальный источник работает просто отлично! только ошибка отображается в скомпилированном коде.
(...)
Я просто оставил свой код как оригинальный в VS-2015 и в окне CMD я выполнил:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_compiler -v / -p "C:\inetpub\wwwroot\projectFolder"
И все работает нормально, без ошибок.
Последующие компиляции в среде VS-2015 также были в порядке.
У нас была такая же проблема на наших тестовых серверах. Мы нашли дубликат нашего dll приложения в файле bin. Его имя немного отличалось (в нем не было ни одного ".") От оригинальной библиотеки DLL, но оно содержало те же типы. Мы удалили его, и все снова заработало.
Я столкнулся с этой ошибкой. Я решил следующим образом: при создании папки «публикация» для развертывания проекта в производственной среде компилятор Visual Studio добавляет эти 2 файла в папку «bin»:
- App_global.asax.compiled
- App_global.asax.dll
Я только что удалил, моя страница снова работает нормально. Надеюсь, это тоже кому-то поможет.
Вы должны убедиться, что пользовательский элемент управления также скопирован вместе со страницей на ваш тестовый сервер.
Я обнаружил, что смешивание пространств имен может действительно запутать вещи.
Лучший способ очистить его - удалить все объявления пространства имен в вашем веб-проекте и убедиться, что они согласованы в зависимых проектах. Не забудьте проверить свойства проекта и сгенерированные файлы.designer.vb.
Кроме того, похоже, у вас есть каталог верхнего уровня с именем ASP - это, вероятно, тоже не помогает. Я бы полностью избавился от этого каталога и посмотрел, поможет ли это в решении проблемы. Я действительно сообщал об этом как об ошибке в MS некоторое время назад, и даже предоставил им воспроизводимый пример, но никогда ничего не слышал от них.