Usuário com melhor resposta
OFF Adicionar Arquivo na instalação Click Once (Gambiarra mais funciona)

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.
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 UtilitiesOpportunity.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.
Respostas
-
Uau... "Gambiarra" mesmo...
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...
Todas as Respostas
-
Uau... "Gambiarra" mesmo...
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...
-
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
-
-