Pergunta

Eu estou tentando exportar uma biblioteca de controle em uma DLL para outros desenvolvedores no escritório para consumir.

A solução que eu originais criados esta aparência:

Solução 1:
- Mri.Controls (biblioteca de classes)
- Mri.FmTool (Web Application)

Mri.FmTool referências Mri.Controls.

Dentro Mri.Controls, tenho algumas WebResources javascript. Mri.FmTool parece ler os WebResources muito bem, todos os meus javascript resouces web aparecem como deveriam quando o aplicativo Mri.FmTool web está em execução.

Então, agora eu estava tentando criar uma solução simples para consumir Mri.FmTool

Solução 2:
- Mri.ConsumerTest (Web Application)

Eu levei a última Mri.Controls.dll e acrescentou-lo como uma referência para aplicação Mri.ConsumerTest. Todos os controles de Mri.Controls parece estar funcionando dentro Mri.ConsumerTest. Intellisense está trabalhando, ele compila, sem problemas.

No entanto, quando executá-lo, a maioria dos arquivos WebResource.axd estão vazios, apenas em branco. Um arquivo WebResource.axd não estiver em branco, ele simplesmente diz "Este recurso não pode ser encontrado."

Aqui estão as propriedades dos arquivos javascript dentro da janela Propriedades:
Construir Ação: "Recursos incorporados"
Copiar para o Diretório de saída: "Copiar sempre"

O que passo eu estou ausente?

Foi útil?

Solução 3

notei que meus arquivos CSS WebResource estavam carregando corretamente, mas o Javascript não estava carregando no WebResource na nova solução.

Assim, em vez de usar o System.Web.UI. ClientScriptManager usado para registrar os WebResources, eu mudei para usar System.Web.UI. ScriptManager . Agora os arquivos estão saindo do ScriptManager.axd (em vez de WebResource.axd ). Isso parecia resolver o problema.

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

O trecho de código acima usa System.Web.UI.ClientScriptManager

Novo Código apó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");
    }
}

O trecho de código acima usa System.Web.UI.ScriptManager

No meu entendimento, ClientScriptManager foi introduzido em 2.0. Acredito ScriptManager é o novo e melhorado 3,5 forma de gerir scripts que tem muito mais funcionalidade.

/ encolher de ombros

Outras dicas

Você provavelmente estão perdendo a [assembly: WebResource ( "YourNameSpace.YourFile.js", "text / javascript")] atributo. WebResource.axd precisa desse atributo. Você pode verificar este artigo KB para informações adicionais sobre o assunto.

são os recursos definido para ser parte da DLL?

Abra o Mri.Controls solução e exibir as propriedades de seus arquivos de recursos de JavaScript.
Eu acho que é onde o problema poderia ser.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top