none
OFF Adicionar Arquivo na instalação Click Once (Gambiarra mais funciona) RRS feed

  • Pergunta

  • Saudações,

     

    Pesquisei muito sobre o assunto, mais não consegui encontrar solução. Olhando a documentação da microsoft, achei como adicionar um novo setup, mais não é nada trivial, pois pelo que entendi teria que editar o registro. É interessante, pois seria possível adicionar um setup feito, por exemplo, no Inno que rode o script de banco e etc.

    http://msdn.microsoft.com/msdnmag/issues/04/10/Bootstrapper/

     

    Mas a questão é adicionar um simples arquivo na instalação do Click Once. Bem na tela de Publish clicando em Application Files (Temos a falta esperança de ter um ADD NEW FILE.. mais não tem). Nessa janela é listado os arquivos  de dependência , exe que vc adicionou ao projeto e etc.

     

    O que vc pode fazer é: adiciona o arquivo que deseja ao projeto, depois mude o seu nome para arquivo.exe, e pronto ele vai aparecer na lista do click once Application Files, então via codigo mude a terminação do arquivo para a correta.

     

    Para o meu caso funcionou. Queria levar um arquivo de resource. Então depois do arquivo compilado fica com a terminação . resource, alterei para exe, e ele foi instalado pelo Click Once. No main da aplicação alterei o seu nome e funcionou. Smile

      

    Code Snippet

    [STAThread]

    static void Main()

    {

    Application.EnableVisualStyles();

    Application.SetCompatibleTextRenderingDefault(false);

    //Tratamento de Erro Global

    ExceptionGlobal err = new ExceptionGlobal();

    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(err.tryException);

    //Inicializa Caption MsgBox Utilities

    Opportunity.System.Component.Utilities.UIValidate.MsgBoxCaption = SGTVM.Properties.Settings.Default.MsgCaption;

    //Resource

    if (File.Exists("SGTVM.pt-BR.exe"))

    {

    File.Copy("SGTVM.pt-BR.exe","SGTVM.pt-BR.resources",true);

    File.Delete("SGTVM.pt-BR.exe");

    }

    Opportunity.System.Component.UIResource.RM = ResourceManager.CreateFileBasedResourceManager("SGTVM.pt-BR", Application.StartupPath, null);

    Opportunity.System.Component.UIResource.Culture = new CultureInfo("pt-BR");

    Application.Run(new MDI_MenuPrincipal());

    }

     

    É gambiarra, mais funciona.

     

     

     

     

    terça-feira, 19 de junho de 2007 02:19

Respostas

  • Uau... "Gambiarra" mesmo... Smile

     

    Você pode fazer o seguinte:

    • Adicione o arquivo de resource (.res, .resx) ao projeto da aplicação;
    • Nas propriedades do arquivo, mude o Build Action para "Content";
    • Pronto! O arquivo vai aparecer em "Application Files" na configuração do ClickOnce...
    terça-feira, 19 de junho de 2007 11:13

Todas as Respostas

  • Uau... "Gambiarra" mesmo... Smile

     

    Você pode fazer o seguinte:

    • Adicione o arquivo de resource (.res, .resx) ao projeto da aplicação;
    • Nas propriedades do arquivo, mude o Build Action para "Content";
    • Pronto! O arquivo vai aparecer em "Application Files" na configuração do ClickOnce...
    terça-feira, 19 de junho de 2007 11:13
  • Nossa Igor.. pq vc não me falou isso antes..

     

    Eu procurei aqui no forum e vi a galera com dificuldade.. e tb não achei nada sobre isso, todos os artigos que encontrei são aqueles next next ....mobral...

     

    Valeu mesmo.. e foi bom lembrar dessa propriedade que de fato passou batido.

     

    []s

    sexta-feira, 22 de junho de 2007 01:39
  • Realmente muito bom!

    Estava com a mesma dúvida. Li o que o Renato falou e já ia fazer isso a mudança de extensão.

    Porém o content salvou minha vida! ;D

    Obrigado Pessoal!

    Marcos Paulo - Slipmp
    terça-feira, 22 de dezembro de 2009 12:40
  • Hum... mas eu precisava incluir um simples arquivo pdf, como poderia fazer isso sem ter de fazer essa gambiarra de mudar a extensão?
    quinta-feira, 21 de janeiro de 2010 13:13