当我编译我最新的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
好的,这是我在这个问题上花了三天后发现的。
最后我想,如果我从解决方案中删除了除了一个(导致问题)之外的所有项目,我可以将它隔离到default.skin。问题似乎非常不稳定,因为如果我从这个文件中删除某些行,它就会开始消失。然而,这并不一致,问题随机而来。
因此,在失去了在代码中修复它的所有希望之后,我决定以另一种方式尝试它。我将aspnet_compiler命令的选项从-prefix开关(为每个文件夹创建了一个dll)更改为-o(所有已编译的ui都放在一个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文件夹并重建已解决。
我发现混合命名空间确实会让事情变得混乱。
清理它的最佳方法是删除Web项目中的所有命名空间声明,并确保它们在依赖项目中是一致的。不要忘记检查项目属性和生成的.designer.vb文件。
此外,听起来你有一个名为ASP的顶级目录 - 这可能也没有帮助。我完全摆脱了该目录,看看这是否有助于解决问题。我曾经向MS报告这是一个错误,甚至为他们提供了一个可重现的例子,但从来没有听到任何回复。
我通过将名称空间放在类上面来解决这个问题
Namespace yournamespace
Public Class yourclass name
end class
end Namespace
您需要确保将用户控件与页面一起复制到测试服务器。
我们在测试服务器上遇到了同样的问题。我们在bin文件中找到了应用程序dll的副本。它的名称与原始dll略有不同(缺少单个“。”),但它包含相同的类型。我们删除了它,一切都开始了。
在我检查了与Samuel相同的物品之后:
[*]默认值在任何地方都没有定义两次 [*]一周之前,其他所有计算机都在工作 [*]没有旧文件仍与编译文件保持一致。我也多次清除临时文件。 [*]我尝试过使用其他aspx文件,所有这些文件都出现了模糊错误(不同源文件中的错误...) [*]原始来源工作得很好!只有错误出现在编译的代码上。 (......)
我只是让我的代码最初在VS-2015和CMD窗口中执行:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_compiler -v / -p "C:\inetpub\wwwroot\projectFolder"
而且每件事都运行正常,没有任何错误。
VS-2015环境中的后续编辑也很好。