Pregunta

Estoy tratando de exportar una biblioteca de controles en un .dll para otros desarrolladores en la oficina para consumir.

La solución que se ve creados originales como esta:

Solución 1:
 - Mri.Controls (biblioteca de clases)
 - Mri.FmTool (aplicación Web)

Referencias Mri.FmTool Mri.Controls.

Dentro de Mri.Controls, tengo algunas WebResources javascript. Mri.FmTool parece leer los WebResources bien, todos mis Resouces web javascript aparecen como deberían cuando la aplicación se está ejecutando Mri.FmTool web.

Así que, ahora que estaba tratando de crear una solución sencilla para consumir Mri.FmTool

Solución 2:
 - Mri.ConsumerTest (aplicación Web)

Tomé la última Mri.Controls.dll y añadió como una referencia a la solicitud Mri.ConsumerTest. Todos los controles de Mri.Controls parecen estar funcionando dentro Mri.ConsumerTest. Intellisense está trabajando, compila, no hay problemas.

Sin embargo, cuando se ejecuta, la mayor parte de los archivos WebResource.axd están vacías, solo en blanco. Un archivo WebResource.axd no está en blanco, simplemente dice "Este recurso no puede ser encontrado."

Estas son las propiedades de los archivos javascript dentro de la ventana Propiedades:
Construir Acción: "Recurso incrustado"
Guardar en agenda de la salida: "Copiar siempre"

¿Qué paso me falta?

¿Fue útil?

Solución 3

Me di cuenta de que mis archivos CSS WebResource estaban cargando correctamente, pero Javascript no se carga en la actualidad WebResource en la nueva solución.

Así que, en lugar de utilizar el System.Web.UI. ClientScriptManager se utiliza para registrar los WebResources, me cambió a utilizar System.Web.UI. ScriptManager . Ahora los archivos están saliendo de ScriptManager.axd (en lugar de WebResource.axd ). Esto pareció resolver el problema.

Código antiguo antes 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");
    }
}

El fragmento de código anterior utiliza System.Web.UI.ClientScriptManager

Nuevo Código despué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");
    }
}

El fragmento de código anterior utiliza System.Web.UI.ScriptManager

A mi entender, ClientScriptManager se introdujo en 2.0. Creo ScriptManager es el nuevo y mejorado 3.5 forma de gestionar las secuencias de comandos que tiene una funcionalidad mucho más.

/ encogimiento

Otros consejos

Usted probablemente está perdiendo la [assembly: WebResource ( "YourNameSpace.YourFile.js", "text / javascript")] atributo. WebResource.axd necesita ese atributo. Puede comprobar este artículo de KB para obtener información adicional sobre la materia.

se establecen los recursos para ser parte de la DLL?

Abrir las Mri.Controls solución y ver las propiedades de sus archivos de recursos de javascript.
Creo que es donde el problema podría ser.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top