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
                       ~~~~~~~~~~~~~~~~

いくつかのことを確認しましたが、すべて問題ないことがわかりました。

[*] デフォルトはどこにも 2 回定義されていません

[*] 1 週間前の最後のリリースではすべてが機能していました

[*] コンパイル済みファイルに残っている古いファイルはありません。また、一時ファイルを何度もクリアしました。

[*] 他の aspx ファイルで試してみましたが、それらすべてがあいまいなエラーを出しています (別のソース ファイルでのエラー...)

[*] 元のソースは問題なく動作します。コンパイルされたコードにはエラーのみが表示されます。

このあいまいさを解決する方法に関するアイデアや手がかり。

ありがとうSK

4

8 に答える 8

4

次のリンクを使用して、この問題を解決しました:http: //www.netomatix.com/development/usercontrols2.aspx

これをaspxまたはascxページに追加しますClassName="MyModule"

   <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="MyModule.ascx.vb" ClassName="MyModule" %>
于 2012-12-06T09:54:39.620 に答える
3

さて、この問題に 3 日間費やした結果、次のことがわかりました。

最後に、ソリューションからすべてのプロジェクトを削除すると (問題の原因となった) 1 つを除いて、それを default.skin に分離できると考えました。このファイルから特定の行を削除すると問題が解決し始めたため、問題は非常に不安定に見えました。ただし、これは一貫性がなく、問題はランダムに発生したり発生したりしました。

そのため、コードで修正するというすべての希望を失った後、別の方法で試すことにしました。aspnet_compiler コマンドのオプションを -prefix スイッチ (フォルダーごとに dll が作成される) から -o (コンパイルされたすべての UI が 1 つの dll に入れられる) に変更したところ、問題は解決しました!!!

この問題は、aspnet_compiler のバグが原因のようです。このバージョンでは、どういうわけか私が理解できなかったことがトリガーされました。

より安定したasp.net 3.5SP1に移行することを考えています(またはasp.net 4.0を待つかもしれません)何か提案はありますか?

于 2009-05-24T15:42:06.783 に答える
2

プロジェクトを参照するライブラリの名前/名前空間を変更するときに、プロジェクトを使用する際にこの問題に遭遇しました。

プロジェクトを消費している問題 Bin フォルダーには、各名前/名前空間名を持つ DLL のコピーがあります。

消費しているプロジェクトの Bin フォルダを削除し、再構築することで解決しました。

于 2015-02-12T18:00:53.880 に答える
0

名前空間を混在させると、本当に混乱する可能性があることがわかりました。

これをクリーンアップする最善の方法は、Web プロジェクト内のすべての名前空間宣言を削除し、それらが依存プロジェクトで一貫していることを確認することです。プロジェクトのプロパティと生成された .designer.vb ファイルを確認することを忘れないでください。

また、ASP という名前の最上位ディレクトリがあるように思えますが、これもおそらく役に立たないでしょう。そのディレクトリを完全に取り除き、それが問題を解決するかどうかを確認します。しばらく前にこれをバグとして MS に報告し、再現可能な例を提供しましたが、彼らから何も連絡がありませんでした。

于 2009-05-22T18:06:56.010 に答える
0

名前空間をクラスの上に置くことでこの問題を解決しました

Namespace yournamespace

Public Class yourclass name

end class

end Namespace
于 2013-04-10T22:00:34.513 に答える
0

テストサーバーでも同じ問題が発生しました。bin ファイルにアプリケーション dll の複製が見つかりました。その名前は元の dll とは少し異なりますが ("." が 1 つ欠けています)、同じ型が含まれていました。それを削除したところ、すべてが再び機能し始めました。

于 2018-11-16T08:31:16.447 に答える