我在c#中创建了一个Windows窗体应用程序,可以在某些Windows 10平板电脑上运行。这已经在他们身上运行了一年多而没有造成任何问题。我们共有三款平板电脑。几个星期前,其中一个平板电脑需要修理,而其他两个平板电脑仍在使用。新修复的平板电脑出厂重置,现在已经安装了最新更新的Windows 10。出于某种原因,当我在修复的平板电脑上运行应用程序时,从配置文件中读取时似乎失败了。所有平板电脑上的所有文件都完全相同
在我的应用程序中,我正在连接到WCF服务。我使用以下代码获取连接对象:
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>
在包含exe文件的文件夹中,我有以下两个文件:
Truck.exe Truck.exe.config
用户具有对文件夹的读/写权限
要进行更多测试以查看问题是配置文件还是WCF服务,我运行了以下代码:
string tmp = ConfigurationManager.ConnectionStrings["MySQL-Database"].ConnectionString;
这个也失败了。出于某种原因,它似乎无法找到配置文件或无法从配置文件中读取
请记住,这个确切的代码在运行Windows 10的其他两个平板电脑上运行得非常好。 谁知道什么可能是错的?
答案 0 :(得分:0)
我发现了这个问题。我在错误的地方找到错误,错误似乎远离任何与代码相关的错误
我的开发机器和平板电脑没有相互连接。平板电脑只通过SIM卡连接到互联网。为了方便将应用程序文件从开发机器传输到平板电脑,过去一年我使用的是Google云端硬盘,这在以前没有给我带来任何问题
要谷歌驱动器我上传exe和Truck.exe和Truck.exe.config文件。在Google云端硬盘中查看它们似乎都是正确的,但由于某些未知原因,Google云端硬盘现在决定将Truck.exe.config文件重命名为Truck.exe.config.xml,我没有注意到。这当然意味着我的exe文件找不到配置文件
最终结果:将文件重命名为原始值,一切正常,