Question

Je suis en train d'exporter une bibliothèque de contrôle dans une .dll pour d'autres développeurs dans le bureau à consommer.

La solution I look original créé comme ceci:

Solution 1:  - Mri.Controls (Bibliothèque de classes)
 - Mri.FmTool (application Web)

Mri.FmTool références Mri.Controls.

Mri.Controls intérieur, j'ai quelques WebResources javascript. Mri.FmTool semble lire les WebResources très bien, tous mes resouces web javascript apparaissent comme ils devraient quand l'application Web Mri.FmTool est en cours d'exécution.

Alors, maintenant, je tentais de créer une solution simple à consommer Mri.FmTool

Solution 2:  - Mri.ConsumerTest (application Web)

Je pris la dernière Mri.Controls.dll et a ajouté comme référence à l'application Mri.ConsumerTest. Tous les contrôles de Mri.Controls semblent travailler à l'intérieur Mri.ConsumerTest. IntelliSense fonctionne, il compile, aucun problème.

Cependant, lors de l'exécution, la plupart des fichiers webresource.axd sont vides, tout en blanc. Un fichier WebResource.axd n'est pas vide, il dit simplement « Cette ressource ne peut pas être trouvé. »

Voici les propriétés des fichiers JavaScript dans la fenêtre Propriétés:
Action Ancienneté:
« des ressources intégrées » Copie vers le répertoire de sortie: « Copie toujours »

Quelle étape suis-je manque?

Était-ce utile?

La solution 3

J'ai remarqué que mes WebResource fichiers CSS ont été exécuté correctement, mais Javascript ne chargeait pas dans WebResource dans la nouvelle solution.

Ainsi, au lieu d'utiliser le System.Web.UI. ClientScriptManager utilisé pour enregistrer les WebResources, je suis passé à l'aide de System.Web.UI. ScriptManager . Maintenant, les fichiers sortent de ScriptManager.axd (au lieu de WebResource.axd ). Cela semblait résoudre le problème.

ancien Code avant Fix:

public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Page.ClientScript.RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
    }
}

L'extrait de code ci-dessus utilise System.Web.UI.ClientScriptManager

Nouveau code après Fix:

public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
    }
}

L'extrait de code ci-dessus utilise System.Web.UI.ScriptManager

De ma compréhension, ClientScriptManager a été introduit dans la version 2.0. Je crois ScriptManager est la nouvelle façon améliorée 3.5 de gestion des scripts qui a beaucoup plus de fonctionnalités.

/ haussement

Autres conseils

Vous manque probablement l': attribut [assembly WebResource ( "YourNameSpace.YourFile.js", "text / javascript")]. WebResource.axd a besoin de cet attribut. Vous pouvez consulter cette KB article pour plus d'infos à ce sujet.

sont les ressources mis à faire partie de la DLL?

Ouvrez la solution Mri.Controls et afficher les propriétés de vos fichiers de ressources javascript.
Je pense que c'est là le problème pourrait être.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top