Tenho uma aplicação que faz a leitura de um ini file e mandar esse dado para o banco MySql, porém esse processo todo só funciona no Windows 10 (Conhecidamente ou não, sistema onde foi compilado), no Windows 7 ele dá erro, e já tentei de tudo… fiz o downgrade do framework para 3.5 e usei o MySql connector mais antigo… Alguém pode me dar um help?
Bom não acredito que seja problema do ini, tendo em vista que ele mostra o conteúdo independente do S.O. O Windows 7 não especifica o erro, só retorna: O Programa parou de funcionar…
Mas de qualquer maneira eis o código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
namespace GerenciadorCID
{
class INIFile
{
private string filePath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key,
string val,
string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key,
string def,
StringBuilder retVal,
int size,
string filePath);
public INIFile(string filePath)
{
this.filePath = filePath;
}
public INIFile()
{
}
public void Write(string section, string key, string value)
{
WritePrivateProfileString(section, key, value.ToLower(), this.filePath);
}
public string Read(string section, string key)
{
StringBuilder SB = new StringBuilder(255);
int i = GetPrivateProfileString(section, key, "", SB, 255, this.filePath);
return SB.ToString();
}
public string FilePath
{
get { return this.filePath; }
set { this.filePath = value; }
}
public String Connection1;
public String CID_1;
public String Connection2;
public String CID_2;
public String Status;
public void ReturnGalileoCID()
{
INIFile inif2 = new INIFile("C:\\fp\\machine\\dat32com.ini");
Connection1 = inif2.Read("Connections", "Name1").ToString();
CID_1 = inif2.Read(Connection1, "Client Identifier").ToString();
Connection2 = inif2.Read("Connections", "Name3").ToString();
CID_2 = inif2.Read(Connection2, "Client Identifier").ToString();
Console.WriteLine("Conexao é: " + Connection2);
Console.WriteLine("CID @ é:" + CID_2);
}
public void lerConfig()
{
INIFile inif2 = new INIFile("C:\\GerenciadorCID\\config.ini");
Status = inif2.Read("Config", "Instalado").ToString();
}
public void alterarConfig()
{
INIFile ini = new INIFile("C:\\GerenciadorCID\\config.ini");
ini.Write("Config", "Instalado", "Sim");
}
}
}
Tente colocar a última versão ! se puder! mas, se não, tem que ir colocando a versão que você acha que é 6.2
A sua dúvida na verdade, é você tem que ver com quem fez o programa! a gente aqui por mais que direcione, eu por exemplo que sou do mundo .net é complicado precisaria ver o projeto!
Quando compilar o projeto ele cria na pasta bin/debug ou big/release um diretório com vários arquivos, se você for copiar e colar em outras maquina tem que levar o diretório inteiro que lá tem as referencias das bibliotecas, uma dica! acredito ser isso agora!
É assim quando você manda compilar ele cria bin/debug ou bing/release depende do tipo de compilação (acho que o seu é bin/debug) ai dentro de vários arquivos, se você utilizar for utilizar tem que levar o diretório inteiro para dar certo e verificar se a rede está liberada para acesso ao MySQL que acredito que não esteja!
Está sim, eu rodei o programa na minha casa e está liberado, o problema é realmente o conector, uso o banco em outra aplicação Java, mas infelizmente nesse caso eu não posso usar o Java… copiei a pasta inteira do projeto dessa vez… e não rolou