Aplicação Windows Forms só funciona no Windows 10

Bom dia pessoal,

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?

Qual é o código? que faz essa leitura no ini?

Qual é o erro se acontece?

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");

        }
    }
}

Como você tem certeza de que o problema é na leitura do INI?
Você está rodando uma compilação ou está usando Visual Studio?

O erro não caracteriza que é na leitura do ini, pelo menos pela mensagem!

Pode ser a versão do .NET FRAMEWORK!

Eu não disse que o erro é no ini! Se me expressei mal me desculpe!

Sinceramente, eu acho que seja no MySql Connector, que simplesmente não faz o insert no meu banco…

Então, verifique o versionamento da aplicação e dos conectores!

O problema não é no S.O e sim nas versões!

Aproveitando o gatilho… qual seria o conector adequado para o framework 3.5?

Ai que tá?

Se for um software compilado, é dificil você saber qual connector foi adicionado as referencias!, se for o código fonte você é simples descobrir!

Você tem que instalar o mesmo que a aplicação foi compilada!

Qual versão de conector foi compilada com esse App?

Se não me engano foi a 6.2*

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!

Ai que tá, eu desenvolvi essa bagaça…

Sou iniciante, principalmente em C#, já estou subindo uma VM aqui e vou criar o projeto no Windows 7…

Pode instalar a ultima versão do conector ele vai rodar!

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!

Deve ser isso!

Eu só copiava o conteudo da pasta bin, será isso?

É 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!

Tem duas verificações agora!

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

é um problema que ao meu ver só está acontecendo com você! Sem informações fica dificil saber, porque até o seu Erro é muito genérico.