2016-09-09 1 views
0

J'ai créé une application Windows Forms en C# pour l'exécuter sur certaines tablettes Windows 10. Cela a fonctionné sur eux pendant plus d'un an sans avoir causé de problèmes. Nous avons un total de trois comprimés. Il y a quelques semaines, l'un des comprimés devait être réparé, tandis que les deux autres étaient toujours utilisés. La tablette nouvellement réparée a été réinitialisée et a maintenant une nouvelle installation de Windows 10 avec les dernières mises à jour. Pour une raison quelconque, lorsque je lance l'application sur la tablette réparée, elle semble échouer lors de la lecture du fichier de configuration. Tous les fichiers sont exactement les mêmes sur toutes les tablettesMon application ne trouve plus app.config

Dans mon application, je me connecte à un service WCF. J'utilise le code ci-dessous pour obtenir l'objet pour la connexion:

return new SilverTruckService.SilverTruckServiceClient("TruckService1"); 

App.Config:

<?xml version="1.0"?> 
<configuration> 
<connectionStrings> 
<add name="MySQL-MyDatabase" connectionString="BLABLABLA" providerName="MySql.Data.MySqlClient"/> 
</connectionStrings> 
<system.serviceModel> 
<client> 
     <endpoint address="http://SomeIPAddress:9001/TruckService" 
     binding="basicHttpBinding" bindingConfiguration="TruckService" 
     contract="TruckService.ITruckService" name="TruckService1" /> 
</client> 
</system.serviceModel> 
</configuration> 

Dans le dossier avec le fichier exe que j'ai les deux fichiers suivants:

Truck.exe Truck.exe.config

l'utilisateur a un accès en lecture/écriture dans le dossier

Pour faire un peu plus de tests pour voir si le problème était le fichier de configuration ou avec le service WCF j'ai couru le code ci-dessous:

string tmp = ConfigurationManager.ConnectionStrings["MySQL-Database"].ConnectionString; 

Celui-ci échoue également. Pour une raison inconnue, il semble qu'il ne trouve pas le fichier de configuration ou ne peut pas lire le fichier de configuration

Rappelez-vous que ce code s'exécute parfaitement bien sur deux autres tablettes fonctionnant sous Windows 10. Toute personne qui a une idée sur qu'est-ce qui pourrait être mauvais?

+0

Vérifiez si vous avez 'System.Configuration'dll. –

+0

Je mets la dll à copier locale maintenant c'est dans le même dossier que le fichier exe, mais ne fait pas de différence –

+0

Quelle erreur obtenez-vous alors? –

Répondre

0

J'ai trouvé le problème. Je cherchais le mauvais endroit pour trouver l'erreur et l'erreur semble être loin de tout ce qui concerne le code

Ma machine de développement et la tablette ne sont pas connectés les uns aux autres. La tablette est uniquement connectée à Internet via une carte SIM. Pour transférer facilement les fichiers d'application de la machine de développement à la tablette, j'ai utilisé Google Drive pendant l'année écoulée, ce qui ne m'a pas causé de problèmes auparavant.

Pour Google Drive, je télécharge l'exe et le fichier Truck.exe. Fichiers Truck.exe.config. En les regardant dans Google Drive, tout semble correct, mais pour une raison inconnue, Google Drive décide maintenant de renommer le fichier Truck.exe.config en Truck.exe.config.xml que je n'ai pas remarqué. Bien sûr, cela signifie que mon fichier exe ne peut pas trouver le fichier config

Résultat final: Renommer le fichier à sa valeur d'origine et tout fonctionne comme il devrait