2009-05-22 68 views
8

暧昧当我编译我的最新的asp.net程序,并试图在测试服务器上运行,我收到此错误BC30560:“default_aspx”是命名空间中的“ASP”

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文件和所有的 他们是给明确的错误 (在不同的源文件的错误...)

[*]原始的源工程只是罚款 !只有错误出现在 编译的代码中。

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

感谢 SK

回答

3

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

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

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

看来问题是由于aspnet_compiler中的一些错误。它在这个版本中以某种方式触发,我无法弄清楚。

我想转向更稳定的asp.net 3.5SP1(或者等待asp.net 4.0)有什么建议吗?

0

我发现,混合命名空间可以真正混淆的东西。

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

此外,它听起来像你有一个名为ASP的顶级目录 - 这可能无助于事情。我会完全摆脱那个目录,看看是否有助于解决问题。我确实向MS回报了这个bug,甚至向他们提供了一个可重复的例子,但从未听过任何回复。

+0

嗨! 感谢您的回答,我不确定你的意思是删除Web项目中的名称空间声明。希望稍微澄清一点。我正在使用的项目是“Web应用程序项目”,并用C#编写(不知道为什么aspnet_compiler错误信息是在vb.net !!!,也许是因为它们已编译) 另外我没有任何ASP文件夹。这似乎是asp.net编译时使用的默认命名空间。 – Samuel 2009-05-22 21:45:25

+0

好吧,上面的代码示例是VB,而不是C#,所以看起来好像你有一些更大的问题需要解决。 但是你会发现有时候每个类定义都被包装在一个Namespace声明中 - 打开每个vb和designer.vb(或cs/designer.cs)并删除所有的Namespace声明,然后尝试重建应用程序。 – chris 2009-05-22 22:15:16

+0

我猜你的意思是,如果C#文件是一样的东西 命名空间mycompany.myfolder { 公共MyClass类{ ... }} 我们应该删除该命名空间声明? 如果是这样,我们如何才能把这些类放入命名空间呢?该解决方案有数百个文件和许多名称空间。 还有一切工作在最后一个版本大约2周回来...无法找出什么改变之后,导致这... – Samuel 2009-05-23 04:34:00

0

我通过将命名空间中的类以上解决了这个问题

Namespace yournamespace 

Public Class yourclass name 

end class 

end Namespace 
0

我在更改消耗项目引用的库的名称/名称空间时遇到了消耗项目中的此问题。

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

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

0

您需要确保用户控件也可以通过页面复制到测试服务器。