Plantage incessant avec le fichier config

Fermé
jojorealisateur Messages postés 203 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 juillet 2020 - 19 oct. 2019 à 21:31
jojorealisateur Messages postés 203 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 juillet 2020 - 27 oct. 2019 à 22:18
Bonjour,

J'ai créé un logiciel en vb.net qui utilise un fichier config avec lequel j'ai un bug incessant.
Lorsque j'ai créé mon logiciel, aucun problème, chaque fois que je le testais, il fonctionnait parfaitement.
Le problème, c'est quand j'ai essayé de l'installer... En effet, il est censé se trouver dans le dossier Programs Files après installation. J'ai créé un script iss et je l'ai lancé. Après avoir démarré mon logiciel fraîchement installé, j'ai reçu ce message :
************** Texte de l'exception **************
System.Configuration.ConfigurationErrorsException: Une erreur s'est produite lors du chargement d'un fichier de configuration : L'accès au chemin d'accès 'C:\Program Files (x86)\ScreenCapture\vtrx1acc.tmp' est refusé. (C:\Program Files (x86)\ScreenCapture\ScreenCapture.exe.Config) ---> System.UnauthorizedAccessException: L'accès au chemin d'accès 'C:\Program Files (x86)\ScreenCapture\vtrx1acc.tmp' est refusé.
à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
à System.CodeDom.Compiler.TempFileCollection.EnsureTempNameCreated()
à System.CodeDom.Compiler.TempFileCollection.AddExtension(String fileExtension, Boolean keepFile)
à System.Configuration.Internal.WriteFileContext..ctor(String filename, String templateFilename)
à System.Configuration.Internal.InternalConfigHost.StaticOpenStreamForWrite(String streamName, String templateStreamName, Object& writeContext, Boolean assertPermissions)
à System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForWrite(String streamName, String templateStreamName, Object& writeContext, Boolean assertPermissions)
à System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForWrite(String streamName, String templateStreamName, Object& writeContext)
à System.Configuration.ClientConfigurationHost.OpenStreamForWrite(String streamName, String templateStreamName, Object& writeContext)
à System.Configuration.UpdateConfigHost.OpenStreamForWrite(String streamName, String templateStreamName, Object& writeContext)
à System.Configuration.MgmtConfigurationRecord.SaveAs(String filename, ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
--- Fin de la trace de la pile d'exception interne ---
à System.Configuration.MgmtConfigurationRecord.SaveAs(String filename, ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
à System.Configuration.Configuration.SaveAsImpl(String filename, ConfigurationSaveMode saveMode, Boolean forceSaveAll)
à System.Configuration.Configuration.Save(ConfigurationSaveMode saveMode)
à ScreenCapture.Form4.Button2_Click(Object sender, EventArgs e)
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
                            • Assemblys chargés **************mscorlib Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.4042.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll----------------------------------------ScreenCapture Version de l'assembly : 1.0.0.0 Version Win32 : 1.0.0.0 CodeBase : file:///C:/Program%20Files%20(x86)/ScreenCapture/ScreenCapture.exe----------------------------------------Microsoft.VisualBasic Version de l'assembly : 10.0.0.0 Version Win32 : 14.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll----------------------------------------System Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.4001.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll----------------------------------------System.Core Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.4042.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll----------------------------------------System.Windows.Forms Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.4042.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll----------------------------------------System.Drawing Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll----------------------------------------System.Configuration Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll----------------------------------------System.Xml Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll----------------------------------------System.Runtime.Remoting Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll----------------------------------------mscorlib.resources Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/mscorlib.resources.dll----------------------------------------System.Configuration.resources Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration.resources/v4.0_4.0.0.0_fr_b03f5f7f11d50a3a/System.Configuration.resources.dll----------------------------------------System.Windows.Forms.resources Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.3761.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll----------------------------------------


Je pense que c'est un problème d'autorisation, parce que quand je le lance en mode admin, je ne constate aucun problème apparent.
Comment puis-je corriger ce problème ?

Merci !

Jojorealisateur
A voir également:

5 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 oct. 2019 à 21:51
Bonsoir

c'est vtrx1acc.tmp ton fichier de configuration?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
19 oct. 2019 à 22:26
Par défaut, le dossier Program files est en lecture seule pour les utilisateurs.
0
jojorealisateur Messages postés 203 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 juillet 2020 18
25 oct. 2019 à 21:26
Bonsoir,

Par rapport à la lecture seule, j'étais au courant... Mais que puis-je faire alors ? Le vb.net ne prévoit-il pas cette éventualité ?
@Whismeril, mon fichier config est nomdulogiciel.exe.config. Il est au format XML.

Merci !

Jojorealisateur
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
25 oct. 2019 à 23:28
Bonsoir
<block>@Whismeril, mon fichier config est nomdulogiciel.exe.config. Il est au format XML. </gras>
Ok, c'est pas un fichier perso.
Ton message d'erreur dit que c'est vtrx1acc.tmp qui est inaccessible
0
jojorealisateur Messages postés 203 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 juillet 2020 18
26 oct. 2019 à 21:43
Oui, excusez-moi... Je n'avais pas compris... Oui, effectivement, c'est écrit dans le message d'erreur :
System.Configuration.ConfigurationErrorsException: Une erreur s'est produite lors du chargement d'un fichier de configuration : L'accès au chemin d'accès 'C:\Program Files (x86)\ScreenCapture\vtrx1acc.tmp' est refusé.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
26 oct. 2019 à 22:14
Donc, il te faut déterminer à quoi sert ce fichier et comment le rendre accessible.
Comme l'a dit NHenry, ce dossier est inaccessible à l'utilisateur
0
jojorealisateur Messages postés 203 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 juillet 2020 18
26 oct. 2019 à 22:19
Le fait qu'il est inaccessible en dehors du mode admin, je savais... Mais je pensais quand même que les fichiers config étaient des exceptions (j'ai vraiment été idiot de le penser d'ailleurs).
N'y aurait-il pas un moyen de, par exemple, déplacer ce fichier de configuration vers AppData et de l'utiliser là ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
26 oct. 2019 à 22:39
Tu as confirmé que vtrx1acc.tmp n'est pas ton fichier de config, c'est ce fichier qui est inaccessible.
Donc c'est ce fichier qu'il faut traiter.
Trouver à quoi il sert, et pourquoi il est appelé lors de la lecture de ton fichier de config.

Ou alors, tu peux essayer de déplacer des datas vers AppData, mais pas nomdulogiciel.exe.config, à ma connaissance du moins.
Selon ce que j'en sais ce fichier est obligatoirement au même endroit que l'exe.

Rien ne t'empêche de copier le contenu actuel de ce fichier de le mettre un un "vrai" fichier xml quelque part dans AppData et d'aller lire ce fichier de config "personnalisé" comme un fichier xml.
Mais il va te falloir remplacer tout le code qui utilise le fichier de config par défaut. Et le remplacer par les données issues de ton nouveau fichier.

0
jojorealisateur Messages postés 203 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 juillet 2020 18
26 oct. 2019 à 22:47
Je viens de re-tenter une exécution, mais le fichier vtrx1acc.tmp a changé de nom... C'est à mon avis un simple fichier temporaire, donc le nom est complètement aléatoire.

Je suis moins chaud pour un recodage complet avec un bête fichier XML, s'il y a un autre moyen...
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
27 oct. 2019 à 00:22
Comme tu l'as dit toi même, le fichier de config est un
un bête fichier XML
avec l'extension config, tu peux faire pareil.

Mais je pense vraiment, qu'il faudrait que tu cherches en quoi ce fichier temporaire est nécessaire.

Une autre option est d'installer le logiciel ailleurs.

J'en connais qui sont quasiment à 100% dans AppData, dans programme files, il n'y a qu'un loader
0
jojorealisateur Messages postés 203 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 juillet 2020 18
27 oct. 2019 à 22:18
J'ai essayé de le mettre dans Appdata, ça fonctionne... Donc c'est ce que je vais faire... Merci beaucoup pour votre aide !

Jojorealisateur
0