2009-01-07 9 views
3

Mon application Web actuelle fonctionne correctement localement et en direct, ce que je suis en train de jouer avec est de compiler mon Web App avec l'option Visual Studio "Ajouter un projet de déploiement Web" de sorte que tout le code derrière est compilé en DLL.Erreur de compilation Web App - Référence ASP.NET

Il y a est une erreur de construction particulier, je ne peux pas me débarrasser

Erreur 50 Le type ou le nom namespace « usercontrols_calendarcell_ascx » n'existe pas dans l'espace de noms « ASP » (vous manque une référence d'assemblage?) C: \ page.ascx.cs 30 1 test_deploy

Et la ligne de code est la suivante:

protected ASP.usercontrols_calendarcell_ascx[] calendarCells; 

Répondre

0

Je devine ici, mais il semble que votre contrôle utilisateur calendarcell ne compile pas correctement. Dans ce cas, votre projet de déploiement utilise probablement une ancienne DLL qui ne contient pas cette classe. Essayez de compiler votre projet, et lorsque vous êtes en mesure de le faire sans erreur, compilez le projet de déploiement.

0

Vous devez également vous assurer de compiler page.ascx.designer.cs.

0

L'avez-vous correctement référencé dans la page ASPX?

Je veux dire cette partie

(Devrait être une étiquette similaire dans votre page ASPX et la SRC doit se référer à l'endroit où le contrôle du calendrier est.

4

Le problème provient du fait que l'espace de noms ASP est un pseudonyme qui ne peut pas être référencé lors de la compilation

La solution que j'ai trouvée était d'intégrer réellement l'espace de noms actuel dans la définition usercontrol.J'ai adapté les noms des éléments à vos conventions de nommage, mais je Je ne sais rien sur le namespac e vous avez utilisé. Par conséquent, je viens de le nommer 'Project.NameSpace'.

  1. Dans le fichier calendarcell.ascx:

    <% @ Control Language = "C#" AutoEventWireup = "true" CodeFile = "calendarcell.ascx.cs" Inherits = "Project.NameSpace. usercontrols_calendarcell » %>

  2. Dans le fichier calendarcell.ascx.cs:

    espace de noms Project.NameSpace
    {
    public partial class usercontrols_calendarcell: System.Web.UI.UserControl
    {

  3. Dans le fichier page.ascx.cs:

    à l'aide du projet.NameSpace;

Espérons que cela aide. Dans mon cas, il a fait le tour parfaitement.

1

Vous pouvez exposer les propriétés de contrôle utilisées sur la page à une interface (par exemple ICalendarCell) et les placer dans App_Code. Implémentez l'interface à votre contrôle et utilisez l'interface dans le fichier .cs à la place.

Questions connexes