2009-05-22 72 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

您需要確保用戶控件也可以通過頁面複製到測試服務器。