кажется если убрать getMD5Stream() отсюда код который дальше просто продолжит выполнение;
Видимо придется переписывать
сама реализация такая .
красным выделил вызовы функций;
PHP код:
void Form1::DownloadInstall()
Код:
void Form1::DownloadInstall()
{
Int32 i = 1 ;
char buf[255];
String^ InstCon = Environment::GetEnvironmentVariable("TEMP")+"\\mysql-connector-net-6.5.4.msi";
GetPrivateProfileString("SETTINGS", "MD5_HASH_INSTALL_CONNECTOR","5bbc6b2ac6fd8539e5e09812af1b5bf3",buf,sizeof(buf),SystemStringToChar(Environment::CurrentDirectory+"\\config.ini"));
String^ md5hash = CharToSystemString(buf);
if(File::Exists(InstCon))
{
if(getMD5Stream(InstCon) == md5hash)
return;
else
File::Delete(InstCon);
}
while(!File::Exists(InstCon))
{
//ссылку на инсталер коннектора лучше сделать на свой сайт!
DownloadFile("http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-6.5.4.msi/from/http://artfiles.org/mysql/", InstCon);
if(getMD5Stream(InstCon) == md5hash)
{
Windows::Forms::MessageBox::Show("md5 Проверен!");
return;
}
File::Delete(InstCon);
i++;
if(i>10)
{
Windows::Forms::MessageBox::Show("Невозможно скачать бибилиотеки для работы программы ,Попробуйте Скачать вручную http://dev.mysql.com/get/Downloads/Connector-Net/");
return;
}
}
if(getMD5Stream(InstCon) == md5hash)
{
return;
}
}
а тут в самом конце вызов DownloadInstall и установка
Код:
void Form1::CheckDll()
{
for (int i = 1; i <= 3; ++i)
{
String^ n_dll;
switch ( i )
{
case 1 :
n_dll = "MySql.Data.dll";
break;
case 2 :
n_dll = "MySql.Data.Entity.dll";
break;
case 3 :
n_dll = "MySql.Web.dll";
break;
}
String^ check_dll = (Environment::GetEnvironmentVariable("ProgramFiles")+"\\MySQL\\MySQL Connector Net 6.5.4\\Assemblies\\v4.0\\"+n_dll);
if (!File::Exists( check_dll ))
{
DownloadInstall();
if (File::Exists(Environment::GetEnvironmentVariable("TEMP")+"\\mysql-connector-net-6.5.4.msi"))
{
String^ path_install = (Environment::GetEnvironmentVariable("TEMP")+"\\mysql-connector-net-6.5.4.msi"+" /passive /q");
system(SystemStringToChar("msiexec /package "+path_install+" /passive /q"));
}
}
}
}