ACRESCENTAR O BD ACCESS NA INSTALACAO

JILNEY 03/04/2010 22:42:45
#338503
Pessoal, abraço a todos, fiquei ausente um bom tempo, mas tô voltando e preciso de uma ajudinha:

Peguei o exemplo no link abaixo do Macoratti:

http://www.macoratti.net/09/01/vbn_daw1.htm

Criei o pacote de instalação mas gostaria de saber como coloco para ser instalado o BD Access junto com a aplicação.
Verifiquei que em Aplication Files o mesmo não aparece, mas neste mesmo local não vi opção de acrescentar outro arquivo.

Agradeço desde já.

TECLA 04/04/2010 10:25:03
#338513
Se me permite, utilize o INNO SETUP para criar o SETUP.
JILNEY 04/04/2010 15:57:47
#338522
Tecla

Eu até ja usei o Inno algumas vezes com o VB6.0, junto com a ferramenta Istool, e tambem com a ajuda de uma ferramenta que peguei aqui no VBMANIA, mas para isso precisava do arquivo gerado pelo antigo PDW do 6.0 mas com o .NET não sei como fazer, tem algum link de algum tutorial para eu poder dar uma olhada ?
TECLA 04/04/2010 17:38:54
#338525
Não tem segredo, faça um BUILD da aplicação e adicione os ASSEMBLIES no ISTOOL / INNO.
Não esqueça do .NET FRAMEWORK.
DYEISON 04/04/2010 22:40:03
#338542
Resposta escolhida
eu adiciono o arquivo .mdb na raiz do projeto (add > existing item) e depois uso uma rotina pra copiar ele pra onde eu quero, na primeira execução do programa. Precisa achar o arquivo primeiro, pq o pacote de instalação do visual basic gera um nome de pasta meio estranho. Pra isso uso essa rotina. Tá mais pra gambiarra, mas serviu pra mim.

Private Sub CopiaDB()

Dim Caminho As String = System.Reflection.Assembly.GetExecutingAssembly.Location()
Dim Diretorio As String
Dim Pos As Integer = Caminho.Length
Dim Caracter As String
Dim Qtd_Barra As Integer
Dim Loc As Integer

Do
Pos = Pos - 1
Caracter = Mid(Caminho, Pos, 1)
If Caracter = [Ô]\[Ô] Then Qtd_Barra = Qtd_Barra + 1
Loop While Qtd_Barra < 2

Diretorio = Mid(Caminho, 1, Pos)

Dim di As New DirectoryInfo(Diretorio)

For Each Pasta As DirectoryInfo In di.GetDirectories()
Dim Pasta2 As New DirectoryInfo(Pasta.FullName)
For Each Arquivo As FileInfo In Pasta2.GetFiles()
Loc = InStr(Arquivo.FullName, [Ô]arquivo.mdb[Ô])
If Loc > 0 Then
IO.File.Copy(Arquivo.FullName, Environ([Ô]userprofile[Ô]) + [Ô]\arquivo.mdb[Ô])
Exit For
End If
Next
If Loc > 0 Then Exit For
Next
End Sub
JILNEY 05/04/2010 13:48:46
#338583
Aê Dyeison beleza, consegui colocar o BD atraves do: Project\Add existing item

Porem dentro do codigo de conexao tenho que colocar o caminho onde estará a pasta criada pelo instalador, a qual contem uma pasta com o nome do programa acrescido de uma numeração assim: MeuPrograma_1_0_0_2 e dentro desta pasta aparece o arquivo do BD com a extensão BD.mdb.deploy a qual eu informei na conexão da seguinte forma:

Conexao = [Ô]C:\Arquivos de programas\MeuProg\MeuProg_1_0_0_2\bd.mdb.deploy[Ô]

Tô achando diferente com do PDW do 6.0 que nós instalavamos a partir de qualquer lugar onde estivesse a pasta da instalação e ele sempre gerava uma pasta dentro do [Ô]C:\arquivos de programas[Ô] com o nome do progrma e acrescentava o BD nesta pasta. Já com o .NET parece que ele não instala nada em lugar nenhum, fica relacionado com a pasta de instalação, deu pra entender ?

Tecla pode falar um pouco sobre este processo da instalação ?
JILNEY 05/04/2010 20:35:58
#338638
Opa! Perfeito, Filet! alguem me explica ai o que aconteceu. Fiz o Seguinte:

1 - Na string de conexão pus da forma abaixo, que conforme Li é para sempre encontrar o BD na mesma pasta do executavel:

Conexao = System.Windows.Forms.Application.StartupPath & [Ô]\bd.mdb[Ô]

2 - Inseri o BD como o Dyeison passou:
Project\Add existing item

3 - Em: My Projet \ Publish \ Aplication Files alterei o Status de: Data File Auto, para: Include

Pronto! agora gero a pasta com o Setup pelo Publish e não importa onde esteja a pasta o programa sempre RODA e encontra o BD, só não sei onde estão os arquivos após instalados (o executavel e o BD) alguem sabe dizer ?

JILNEY 10/04/2010 10:18:11
#339003
Tô encerrando, se alguem puder falar sobre, me manda uma mensagem interna, agradeço.
Tópico encerrado , respostas não são mais permitidas