BC30560:'default_aspx'在命名空间'ASP'中不明确

问题描述 投票:8回答:8

当我编译我最新的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
                       ~~~~~~~~~~~~~~~~

我检查了一些事情,所有这些都证明是可以的:

[*]默认值在任何地方都没有定义两次

[*]一周都在最后一次发布

[*]没有旧文件仍与编译文件保持一致。我也多次清除临时文件。

[*]我尝试过使用其他aspx文件,所有这些文件都出现了模糊错误(不同源文件中的错误...)

[*]原始来源工作得很好!只有错误出现在编译的代码上。

关于如何解决这种歧义的任何想法或任何线索。

谢谢SK

asp.net ambiguous
8个回答
3
投票

好的,这是我在这个问题上花了三天后发现的。

最后我想,如果我从解决方案中删除了除了一个(导致问题)之外的所有项目,我可以将它隔离到default.skin。问题似乎非常不稳定,因为如果我从这个文件中删除某些行,它就会开始消失。然而,这并不一致,问题随机而来。

因此,在失去了在代码中修复它的所有希望之后,我决定以另一种方式尝试它。我将aspnet_compiler命令的选项从-prefix开关(为每个文件夹创建了一个dll)更改为-o(所有已编译的ui都放在一个dll中),问题就消失了!

似乎问题是由于aspnet_compiler中的一些错误。它在这个版本中以某种方式被触发,我无法弄明白。

我想移动到更稳定的asp.net 3.5SP1(或者等待asp.net 4.0)任何建议?


2
投票

我刚刚通过以下链接解决了这个问题:http://www.netomatix.com/development/usercontrols2.aspx

在aspx或ascx页面上添加此类ClassName =“MyModule”

   <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="MyModule.ascx.vb" ClassName="MyModule" %>

1
投票

在更改使用项目引用的库的名称/命名空间时,我在使用项目时遇到了这个问题。

问题是消耗项目Bin文件夹具有每个名称/命名空间名称的DLL副本。

删除消耗项目Bin文件夹并重建已解决。


0
投票

我发现混合命名空间确实会让事情变得混乱。

清理它的最佳方法是删除Web项目中的所有命名空间声明,并确保它们在依赖项目中是一致的。不要忘记检查项目属性和生成的.designer.vb文件。

此外,听起来你有一个名为ASP的顶级目录 - 这可能也没有帮助。我完全摆脱了该目录,看看这是否有助于解决问题。我曾经向MS报告这是一个错误,甚至为他们提供了一个可重现的例子,但从来没有听到任何回复。


0
投票

我通过将名称空间放在类上面来解决这个问题

Namespace yournamespace

Public Class yourclass name

end class

end Namespace

0
投票

您需要确保将用户控件与页面一起复制到测试服务器。


0
投票

我们在测试服务器上遇到了同样的问题。我们在bin文件中找到了应用程序dll的副本。它的名称与原始dll略有不同(缺少单个“。”),但它包含相同的类型。我们删除了它,一切都开始了。


0
投票

在我检查了与Samuel相同的物品之后:

[*]默认值在任何地方都没有定义两次 [*]一周之前,其他所有计算机都在工作 [*]没有旧文件仍与编译文件保持一致。我也多次清除临时文件。 [*]我尝试过使用其他aspx文件,所有这些文件都出现了模糊错误(不同源文件中的错误...) [*]原始来源工作得很好!只有错误出现在编译的代码上。 (......)

我只是让我的代码最初在VS-2015和CMD窗口中执行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_compiler -v / -p "C:\inetpub\wwwroot\projectFolder"

而且每件事都运行正常,没有任何错误。

VS-2015环境中的后续编辑也很好。

© www.soinside.com 2019 - 2024. All rights reserved.