Bonjour
Je voudrais diffuser mon programme. Il semblerait que pondre une installation avec ClickOnce soit le plus simple.
J'accède à une base de contacts Access que mon programme travaille. La base est stockée à part. Je stocke le chemin en local dans un fichier txt que j'ai fort originalement baptisé Path.txt.
Mais j'ai besoin d'indiquer au logiciel où se trouve ce fichier (ou celui de la base, tant qu'on y est).
L'intérêt du fichier txt est de ne demander le chemin à l'utilisateur qu'une seule fois lors de l'installation.
Mais voilà, ClickOnce m'installe le programme n'importe où, au fond d'AppData ou je ne sais quoi au lieu de me faire ça gentiment sous ProgramFiles.
J'ai bien tenté de prendre directement Path.txt dans le répertoire d'installation, mais impossible de donner un chemin correct :
Si je parvenais à donner un chemin valide pour Path.txt, ça irait. Mais entre ..\Path.txt ou ..\Bin\Path.txt ou autre, rien ne marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 rivate Sub Euroline_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim configpath As String Dim mypath As String configpath = "..\Path.txt" Try If File.Exists(configpath) = False Then BaseOpenFileDialog.FileName = "Path.txt" BaseOpenFileDialog.DefaultExt = ".txt" If BaseOpenFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then BaseOpenFileDialog.RestoreDirectory = False BaseOpenFileDialog.InitialDirectory = "..\" configpath = BaseOpenFileDialog.FileName Else : Exit Sub End If End If mypath = File.ReadAllText(configpath) If mypath = "" Then BaseOpenFileDialog.FileName = "data.mdb" BaseOpenFileDialog.DefaultExt = ".mdb" If BaseOpenFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then BaseOpenFileDialog.RestoreDirectory = True mypath = BaseOpenFileDialog.FileName File.WriteAllText(configpath, mypath) Else : Exit Sub End If End If Catch ex As Exception End Try strConn = "Provider=Microsoft.jet.OLEDB.4.0;Data Source= " & mypath & ";" objetConnection = New OleDbConnection() objetConnection.ConnectionString = strConn objetConnection.Open() Requetes() objetDataAdapter.Dispose() objetConnection.Close() End Sub
Et si je tente d'utiliser Environnement.CurrentDirectory, il m'indique le répertoire Debug qui ne sera pas le répertoire d'exécution. Pourtant, j'ai bien ajouter mon Path.txt aux fichiers d'application.
Ca vous inspire?
Merci
Partager