1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB.net | Publicar projecto

Discussão em 'Programação' iniciada por diog0silva, 13 de Abril de 2009. (Respostas: 7; Visualizações: 2423)

  1. diog0silva

    diog0silva Power Member

    Boas.

    Tive a fazer um projecto para a faculdade em VB.net e agora tenho q entregá-lo num cd. Já publiquei projectos (apesar de não me lembrar muito bem lol), mas nunca publiquei um projecto suportado por uma base de dados.

    A base de dados que tenho está em SQL Server 2008.

    Alguém conhece algum link, tuturial, ou outro mecanismo que me possa ser útil? :D

    Cumprimentos.

    PS: já agora, a aplicação só vai funcionar em computadores q tenham o SQL Server 2008 instalado, ou o SQL Server 2005 também serve?
     
  2. ribeiro55

    ribeiro55 Power Member

    Se não andaste a cortar mato com as mariquices do 2008 (ainda que não as conheça todas, mas a história é sempre a mesma com as retrocompatibilidades), o 2005 vai servir perfeitamente.

    Só tens de ter três coisas em conta:

    1- A datasource vai ser diferente. A menos que a instância esteja num servidor.
    2- Convém levares um backup da BD da tua instância para a instância alvo. (lembra-te que instâncias locais servem apenas para dev. Se não existe um server, e se queres evitar instalar servers por onde a aplicação ande, deves reconsiderar a recorrência ao SQL Server. Alternativamente até o SQL Compact Edition, provavelmente te servia)
    3- Vais precisar sempre da Framework que determinaste como alvo

    Uma nota importante: O Publish é muito giro e tal, mas é areia para os olhos.
    Fazes um build do projecto e vais buscar os executáveis, referências, wtv, todas à pasta "Debug" (por defeito, no build é para aqui que vai parar) e utilizas um Installer de homem.

    EDIT: Por acaso, por defeito, o build despacha para a pasta "Release". My bad :)
     
    Última edição: 15 de Abril de 2009
  3. diog0silva

    diog0silva Power Member

    ribeiro55, obrigadao pela ajuda.

    Mas infelizmente os meus conhecimentos de programação não me permitem acompanhar o teu raciocinio lol Se puderes ser um pouco mais preciso agradeço-te ainda mais :D
     
  4. PNDmartins

    PNDmartins Power Member

    O que o ribeiro55 quer dizer é:

    - A localização da base de dados numa outra máquina pode ser diferente excepto se se ligar a um server em rede/internet, logo os datasource vão ser diferentes, e se usas-te objectos especificos do vb para efectuar as ligações a base de dados em vez de fazeres tu a mão, és capaz de ter um grande problema.

    - Leva contigo a base de dados, caso seja necessário.

    - Em vez de fazeres publish que instala o programa não se sabe bem onde nem como, podes ir a pasta bin\debug ou bin\relase e sacar todos os ficheiros de lá desde o .exe, .dlls, etc e só isso já é o teu programa e não precisas de mais nada para correr o programa excepto o que se encontra dentro dessas pastas e inclusive tem alguns ficheiros desnecessários mas em caso de duvida, leva tudo o que estiver dentro da pasta. (a não ser que tu no código tenhas feito referencia a
    mais alguma coisa, e nesse caso tens que levar tudo).

    A pasta bin\debug é actualizada com as alterações que fizes-te ao teu projecto sempre que carregas no F5 ou fazes run do teu projecto. A pasta bin\Release só é actualizada quando fazes "Build" no projecto, logo se fores buscar os ficheiros da pasta bin\release sem fazeres um "Build" antes, os ficheiros que lá estiverem podem estar desactualizados em relação ás ultimas moficações que tenhas feito.

    Se mesmo assim quiseres um instalador, podes sempre procurar na net instaladores de borla compativeis com .net que sempre são melhores que o publish. Podes ainda, se tiveres uma versão do Visual studio a pagantes, criar um próprio projecto de setup que o visual studio te permite fazer.
     
  5. diog0silva

    diog0silva Power Member

    PNDmartins e ribeiro55, obrigadao pela vossa ajuda.

    Está aqui um exemplo de como tou a fazer a ligação à BD:

    Código:
     
    [SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [COLOR=white]constr[/COLOR] [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]String[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [COLOR=white]=[/COLOR] [/COLOR][/SIZE][SIZE=2][SIZE=2][COLOR=white]ConfigurationManager.ConnectionStrings([/COLOR][/SIZE][COLOR=white][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"projecto_teste_1.My.MySettings.PGSIConnectionString"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString[/SIZE]
    [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] db [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]New[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] SqlConnection(constr)[/SIZE]
    [SIZE=2]db.Open()[/SIZE]
     
    [SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] varsql2 [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]String[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = [/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"SELECT * FROM tab_atleta ORDER BY atl_nome"[/COLOR][/SIZE]
    [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] cmd2 [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]New[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] SqlCommand(varsql2, db)[/SIZE]
     
    [SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] SqlAdp [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]New[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] SqlDataAdapter(cmd2)[/SIZE]
    [SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] dt2 [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]New[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] DataTable[/SIZE]
    [SIZE=2]SqlAdp.Fill(dt2)[/SIZE]
     
    [SIZE=2][SIZE=2]txtNome.Text = dt2.Rows(0).Item([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"atl_nome"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString[/SIZE]
     
    [SIZE=2]db.close()[/SIZE]
    [/SIZE]
    
    Eu acho que percebi aquilo que me explicaram. O que eu queria saber é se há alguma forma de gerar uns instalador que, ao instalar numa nova máquina, ele instalava a base de dados nessa nova máquina, e a ConnectionString era automáticamente actualizada.. :\ É que eu tenho q entregar o projecto que fiz a uma professora que percebe menos do que disto.. e se aquilo não instalar aquilo e ficar logo operacional, ela é bem capaz de me lixar na alma lol

    Se existir alguma maneira, e se alguém tiver paciência, agradeço mesmo! De contrário, obrigadao pela ajuda, e eu tento resolver com o que me disseram.
     
    Última edição: 16 de Abril de 2009
  6. PNDmartins

    PNDmartins Power Member

    Estás a usar que tipo de base de dados, ms sql normal ou compact edition?

    Isto porque:
    - O normal é bom para projectos que estão a trabalhar em cima da rede ou internet onde existe um server com o Sql, e todos os pc de, digamos, uma empresa se ligam a esse Sql. Se for este o teu caso, estás tramado porque o pc onde a tua professora for instalar isto tem que ter o SqlServer instalado, e tens que já ter um user nesse Sql para um instalador se poder ligar lá e colocar a tua base de dados nesse server. Duvido que exista algo para isto, visto que muitas das empresas actuais teem pessoas próprias para ir aos locais instalar tudo o que é necessário para o seu software funcionar.

    - Se for a compact edition é mais simples porque tudo o que necessita para funcionar é um pequeno runtime que tem que ser instalado, e a connection string fica algo do genero "C:\Dados\AMinhaBaseDados.AExtensaodoficheiro".
     
  7. diog0silva

    diog0silva Power Member

    Pois eu tou a usar o SQL Server normal :\

    Entao, o que me aconselhas a fazer?

    Eu tava a pensar gravar no cd todo o conteudo daquela pasta que me disseste, e um backup da minha base de dados.

    Depois, como ela vai ver aquilo na faculdade, fala com alguém que perceba do assunto, e através do backup é possivel criar uma base de dados igual a essa não é? Depois era só definir uma nova conexão e pronto, ficava a funcionar.

    Digo eu lol
     
  8. PNDmartins

    PNDmartins Power Member

    Sim, isso funciona.

    Visto que tens o backup, só é necessário entrar no Sql com um utilizador com privilégios para criar/restaurar bases de dados, crias uma base de dados nova com o mesmo nome e depois fazes um restore na base de dados que crias-te com o teu backup e depois de alterares a connection string fica a funcionar.
     

Partilhar esta Página