none
criar executável visual Basic 2010 RRS feed

  • Pergunta

  • Pessoal, fiz um sistema que funciona normalmente na máquina em que foi compilado (máquina que roda o Visual Basic 2010), mas agora preciso de colocar noutra máquina. Queria saber como posso criar o executável e meter o sistema a funcionar noutra maquina que nem sequer tem o Visual Basic 2010 instalado???
    terça-feira, 18 de março de 2014 20:02

Respostas

  • Jota, usando seu próprio código ok?

    Dim constr1 As String = Application.StartupPath + "\Exe.mdb"
    constr1 = "Data Source=.\SQLEXPRESS;AttachDbFilename=" + constr1 + ";Integrated Security=True;Connect Timeout=30;User Instance=True"
    Dim db As New SqlConnection(constr1)
    db.Open()
    Dim varsql As String
    varsql = "insert into Exe(Nome, Morada)" & "values(@Nome, @Morada)"
    Dim cmd As New SqlCommand(varsql, db)
    cmd.Parameters.Add(New SqlParameter("@Nome", Txtnome.Text))
    cmd.Parameters.Add(New SqlParameter("@Morada", Txtmorada.Text))
    cmd.ExecuteNonQuery()
    db.Close()
    MsgBox("Fornecedor inserido com sucesso!", MsgBoxStyle.Information, "Mensagem de Confirmação")

    É isso basicamente.

    Agora uma pergunta (2 na verdade): o nome do arquivo do banco de dados é "EXE.MDB"? Se não for troque na primeira linha.

    A TABELA se chama "EXE"? Se não for, troque o "insert into Exe" pelo nome da tabela.

    • Sugerido como Resposta SammuelMiranda quarta-feira, 26 de março de 2014 11:56
    • Editado SammuelMiranda quarta-feira, 26 de março de 2014 12:01
    • Marcado como Resposta Giovani Cr quinta-feira, 27 de março de 2014 18:33
    quarta-feira, 26 de março de 2014 11:56

Todas as Respostas

  • Botão direito sobre a Solução > Propriedades > Publish

    Basta publicar

    quarta-feira, 19 de março de 2014 00:50
  • Como assim?
    quarta-feira, 19 de março de 2014 09:27
  • Boa tarde JotaMax,

    Aqui tem um vídeo de como fazer o que você deseja:

    http://www.youtube.com/watch?v=aHXpG9ZPFzA

    Se quiser criar um isntalador:

    http://www.youtube.com/watch?v=KS_NTPF_4i8

    Att


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Msdn Community Support

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Editado Giovani Cr quarta-feira, 19 de março de 2014 17:23 update
    quarta-feira, 19 de março de 2014 17:19
  • JotaMax, depende do que você escreveu.

    Veja que, se você publicar deverá ser suficiente, mas lembre-se das dependências.

    Exemplo: O .Net Framework na mesma versão que você compilou (2.0, 3.0, 3.5, 4.0 ...) tem que estar instalado na máquina de destino. Se você usa bibliotecas INTEROP do Office, você tem que ter o Office (mesma versão, 2007, 2010... ) instalado na máquina de destino. O "Public" não vai enviar todas as bibliotecas junto.

    Se você só usa as bibliotecas nativas do .Net, se você simplesmente Copiar o EXE na pasta \bin\debug ou \bin\release do seu projeto, para um PC que tenha o .Net instalado já vai rodar, sem precisar dar "Publish". Agora, se você usar o SqlServer (Express ou R2 ... ), SqlServer Compact você precisa instala-los na máquina de destino, ou, no caso do Compact pelo menos, copiar as DLLs da pasta (se for sistema x64 copie ambas as intalações em pastas junto com projeto) e enviar junto.

    Em resumo, eu estou divagando as ideias para você - você precisa ter todas as dependências instaladas no PC de destino para rodar o programa. Se você tiver isso, com "Publish" ou sem "Publish" o programa irá rodar. O Publish é para te ajudar a formar um instalador para facilitar para o usuário.

    quinta-feira, 20 de março de 2014 19:20
  • Eu ja tenho o publish , criei o executável, o que preciso de fazer para instalar noutro PC, e funcionar com as imagens e com a base de dados??
    domingo, 23 de março de 2014 10:28
  • Vc precisa de todos os arquivos nesta pasta... vc pd criar um cd, ai vc coloca todos os arquivos da pasta publish, e executa o setup
    domingo, 23 de março de 2014 13:13
  • Uma pergunta... como vc fez a ligação com o banco de dados, tipo onde vc informou a localização do banco de dados, pq dependendo da forma ele pode não funcionar.
    domingo, 23 de março de 2014 13:14
  • Eu fiz a ligacao dentro dos form, mais ou menos assim:

     Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Acer\Desktop\Base de Dados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

                Dim db As New SqlConnection(constr)
                db.Open()

    domingo, 23 de março de 2014 23:04
  • OK, para isso funcionar você vai precisar instalar o SQL Server Express na máquina de destino.
    segunda-feira, 24 de março de 2014 11:34
  • Pode dar me o link para fazer o download?? SFF

    segunda-feira, 24 de março de 2014 15:51
  • http://www.microsoft.com/pt-br/download/details.aspx?id=29062

    Esse é o link de download.

    segunda-feira, 24 de março de 2014 19:09
  • Mas agora aqui tenho de lhe dar um caminho, ou nao?
    segunda-feira, 24 de março de 2014 22:14
  • Sinceramente seria recomendavel vc deixar o BD dentro do programa, afinal se vc instalar o programa desse jeito q ta,  a pessoa vai ter q ficar copiando o banco de dados pra pasta, e de acordo com oq vc colocou ali, so o usuario Acer vai conseguir usar... faça o seguinte, coloca o bd dentro da pasta Debug, ai vc faz o seguinte

    Source=.\SQLEXPRESS;AttachDbFilename=Application.StartupPatch & "\" & Base de Dados.mdf 

    ai vc segue do jeito q vc colocou o resto dos comandos.

    terça-feira, 25 de março de 2014 00:50
  • Mas depois assim o caminho vai conter Acer tambem

    terça-feira, 25 de março de 2014 10:19
  • Jota, assim o arquivo DB ficará na mesma pasta do programa, ou se você quiser em uma sub-pasta.

    Desta forma quando for instalado (ou copiado) para a máquina cliente, não importará em que pasta o programa fique, ele sempre vai "olhar" dentro da própria pasta para acessar o banco.

    Pode botar "Application.StartupPath & "\Base de Dados.mdf" ou "Application.StartupPath & "\Uma Sub-Pasta Qualquer\Base de Dados.mdf". Dessa forma a estrutura fica:

    "X:\XXX\MeuPrograma.exe" e o banco de dados ficará em "X:\XXX\Uma Sub-Pasta Qualquer\Base de dados.mdf". O "X:\XXX\" é o resultado do "Application.StartupPath".

    terça-feira, 25 de março de 2014 11:15
  • Tenho a base de dados na pasta Debug do projeto, o caminho será assim

     Dim constr1 As String = Application.StartupPath & "\Exe.mdb"

            Path.Combine(Directory.GetParent(Application.ExecutablePath).FullName, "Exe.mdb")

            

            Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Acer\Desktop\Exe\Exe\bin\Debug\Exe.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
            Dim db As New SqlConnection(constr)
            db.Open()
            Dim varsql As String
            ' Inserir na tabela clientes
            varsql = "insert into Exe(Nome, Morada)" & "values(@Nome, @Morada)"


            Dim cmd As New SqlCommand(varsql, db)
            ' linha da base de dados

            cmd.Parameters.Add(New SqlParameter("@Nome", Txtnome.Text))
            cmd.Parameters.Add(New SqlParameter("@Morada", Txtmorada.Text))

            cmd.ExecuteNonQuery()

            db.Close()
            MsgBox("Fornecedor inserido com sucesso!", MsgBoxStyle.Information, "Mensagem de Confirmação")

    terça-feira, 25 de março de 2014 11:21
  • Jota o problema é que vc esta apontando o caminho do BD para o seu usuario, ou seja se vc instalar em outra maquina, ele não ira localizar o Banco de Dados, entendeu? vc esta falando pra ele procurar o BD em: C:\Users\Acer\Desktop\Exe\Exe\bin\Debug\Exe.mdf  mas vamos dizer que eu instale o seu programa, ele ira continuar procurando nesse endereço e no meu pc esse caminho n existe, por isso vc deve substituir por: Application.StartUpPatch & "\Exe.mdf" ai desse jeito ele ira procurar o BD no mesmo local q o executavel do programa esta.


    terça-feira, 25 de março de 2014 13:46
  • E como substituo é que ao substituir ele da me este erro: O formato da cadeia de inicialização não está em conformidade com a especificação no início do índice 0
    terça-feira, 25 de março de 2014 18:40
  • Creio eu que ficaria assim:

    Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & Application.StartupPath & "\Exe.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
            Dim db As New SqlConnection(constr)
            db.Open()

    Não dou certeza que é assim, pq eu nunca trabalhei com SQL e sim com Access, o que eu fiz no Access ficou assim:

          

     Dim cn As OleDb.OleDbConnection

                cn = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source= BancodeDados.accdb")

            cn.Open()


    O banco de dados eu deixei dentro da pasta debug.

    quarta-feira, 26 de março de 2014 00:30
  • Jota, usando seu próprio código ok?

    Dim constr1 As String = Application.StartupPath + "\Exe.mdb"
    constr1 = "Data Source=.\SQLEXPRESS;AttachDbFilename=" + constr1 + ";Integrated Security=True;Connect Timeout=30;User Instance=True"
    Dim db As New SqlConnection(constr1)
    db.Open()
    Dim varsql As String
    varsql = "insert into Exe(Nome, Morada)" & "values(@Nome, @Morada)"
    Dim cmd As New SqlCommand(varsql, db)
    cmd.Parameters.Add(New SqlParameter("@Nome", Txtnome.Text))
    cmd.Parameters.Add(New SqlParameter("@Morada", Txtmorada.Text))
    cmd.ExecuteNonQuery()
    db.Close()
    MsgBox("Fornecedor inserido com sucesso!", MsgBoxStyle.Information, "Mensagem de Confirmação")

    É isso basicamente.

    Agora uma pergunta (2 na verdade): o nome do arquivo do banco de dados é "EXE.MDB"? Se não for troque na primeira linha.

    A TABELA se chama "EXE"? Se não for, troque o "insert into Exe" pelo nome da tabela.

    • Sugerido como Resposta SammuelMiranda quarta-feira, 26 de março de 2014 11:56
    • Editado SammuelMiranda quarta-feira, 26 de março de 2014 12:01
    • Marcado como Resposta Giovani Cr quinta-feira, 27 de março de 2014 18:33
    quarta-feira, 26 de março de 2014 11:56
  • Já consegui criar muito obrigada pelas ajudas a todos  :)
    quinta-feira, 27 de março de 2014 11:10