2009-05-22 5 views
8

Quand je compilé mon dernier programme de asp.net et d'essayer de fonctionner sur le serveur de test, je reçois cette erreurBC30560: « default_aspx » est ambigu dans l'espace de noms « 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 

erreurs détaillées quand je développer la sortie du compilateur ...

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

j'ai vérifié quelques choses et tous se est avéré être correct:

[*] Par défaut n'est pas défini deux fois partout

[*] Tout fonctionnait sur la dernière version 1 semaine de retour

[*] Il n'y a pas de vieux fichiers qui sont toujours rester avec les fichiers compilés . J'ai également effacé les fichiers temporaires plusieurs fois.

[*] J'ai essayé avec d'autres fichiers ASPX et toutes leur est de donner une erreur ambiguë (erreur dans différents fichiers source ...)

[*] La source originale fonctionne très bien! seule l'erreur apparaît sur le code compilé .

Des idées ou des indices sur la façon de résoudre cette ambiguïté.

Merci SK

Répondre

3

Ok, voici ce que j'ai trouvé après avoir passé trois jours sur ce problème.

Enfin, je me suis dit que si je supprimais tous les projets de la solution sauf un (ce qui posait problème), je pourrais l'isoler à default.skin. Le problème a semblé être très erratique parce qu'il a commencé à disparaître si j'ai supprimé certaines lignes de ce fichier. Cependant, ce n'était pas cohérent et le problème est venu et est allé au hasard. Donc, après avoir perdu tout espoir de le fixer dans le code, j'ai décidé de l'essayer d'une autre manière. J'ai changé l'option de la commande aspnet_compiler de -prefix switch (une DLL est créée pour chaque dossier) à -o (tous les ui compilés sont mis dans une DLL), le problème est parti !!!

Il semble que le problème soit dû à un bug dans le compilateur aspnet_compiler. Il s'est déclenché dans cette version que je ne pouvais pas comprendre.

Je pense à passer à une version plus stable de asp.net 3.5SP1 (ou peut-être attendre asp.net 4.0) des suggestions?

+2

Je reçois toujours ce problème dans asp.net 4.0 –

0

J'ai trouvé que le mélange peut vraiment Namespaces confondre les choses. La meilleure façon de le nettoyer est de supprimer toutes les déclarations d'espace de noms dans votre projet Web, et assurez-vous qu'elles sont cohérentes dans les projets dépendants. N'oubliez pas de vérifier les propriétés du projet et les fichiers .designer.vb générés. En outre, il semble que vous ayez un répertoire de premier niveau nommé ASP - cela n'aide probablement pas non plus. Je vais me débarrasser complètement de ce répertoire et voir si cela aide le problème. J'ai signalé ce problème à MS il y a quelque temps, et je leur ai même fourni un exemple reproductible, mais je n'ai jamais rien entendu de leur part.

+0

Salut! Merci de répondre, je ne suis pas sûr de ce que vous voulez dire en supprimant la déclaration d'espace de noms dans le projet web. J'apprécierais un peu plus de clarification. Les projets que j'utilise sont "projet d'application web" et sont écrits en C# (je ne sais pas pourquoi le message d'erreur aspnet_compiler est dans vb.net !!!, peut-être parce qu'ils sont compilés) Je n'ai pas non plus de dossier ASP. Cela semble être l'espace de noms par défaut utilisé par asp.net lors de la compilation. – Samuel

+0

Eh bien, l'exemple de code ci-dessus est vb, pas C#, donc il semble que vous ayez des problèmes plus importants à résoudre. Mais vous trouverez parfois que chaque définition de classe est enveloppée dans une déclaration Namespace - ouvrez chaque vb et designer.vb (ou cs/designer.cs) et supprimez toutes les déclarations d'espace de noms, et essayez de reconstruire l'application. – chris

+0

Je suppose que vous voulez dire que si le fichier C# est quelque chose comme espace de noms mycompany.myfolder { myclass public class {... }} nous retirer la déclaration d'espace de nom? Si oui, comment pouvons-nous mettre les classes dans l'espace de noms alors? La solution a des centaines de fichiers et de nombreux espaces de noms. Aussi tout fonctionnait dans la dernière version environ 2 semaines en arrière ... ne pouvait pas comprendre ce qui a changé après cela pour provoquer cela ... – Samuel

2

Je viens de résoudre ce problème avec l'aide le lien suivant: http://www.netomatix.com/development/usercontrols2.aspx

Ajouter ceci sur ASPX ou une page ascx ClassName = « MyModule »

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

Merci, monsieur. C'était une solution rapide et simple. Sur mes 50 contrôles utilisateur, un seul a eu ce problème de compilateur (jusqu'à présent). – ps2goat

0

J'ai résolu ce problème en mettant l'espace de noms au-dessus de la classe

Namespace yournamespace 

Public Class yourclass name 

end class 

end Namespace 
0

J'ai rencontré ce problème en consommant un projet lors de la modification du nom/espace de noms d'une bibliothèque qui utilise le projet référencé.

Problème de consommation Le dossier Bin a une copie de DLL avec chaque nom/nom d'espace de noms.

Suppression du dossier de chargement du dossier Bin et reconstruction résolus.

0

Vous devez vous assurer que le contrôle utilisateur est également copié sur la page vers votre serveur de test.

Questions connexes