Подключаем MySQL .NET Connector к Visual Studio 2012 RC

Для взаимодействия с серверами MySQL в .NET существует специальный драйвер под названием Connector. Однако, из-за ошибки в поставляемом с ним расширении, невозможно указать сервер MySQL в различных помощниках Visual Studio 2012 RC. Давайте исправим эту проблему за несколько минут с помощью командной строки и Notepad.

Итак, чтобы получить возможность выбирать MySQL сервера в качестве источников данных необходимо выполнить следующие шаги:

  1. Скачайте и установите .NET Connector.
  2. Создайте папку (например D:\MySQLConnectorFix) и скопируйте в неё установочный файл (mysql-connector-net-6.5.4.msi).
  3. Запустите командную строку. В ней перейдите в созданную папку и выполните команду, указав в параметре TARGETDIR место, куда будет распаковано содержимое msi файла:
    msiexec /a mysql-connector-net-6.5.4.msi /qb TARGETDIR=D:\MySQLConnectorFix\Unpacked
  4. В Explorer откройте Unpacked\Unpacked\VSPath\Extensions\Oracle\MySQL Connector Net\6.5.4 и в файле extension.vsixmanifest:
    • Удалите строку c тегом <InstalledByMsi>true</InstalledByMsi>;
    • После блока <VisualStudio Version="10.0"> добавьте данные для версии "11.0":
      <VisualStudio Version="11.0">
        <Edition>Ultimate</Edition>
        <Edition>Premium</Edition>
        <Edition>Pro</Edition>
        <Edition>VWDExpress</Edition>
        <Edition>VPDExpress</Edition>
        <Edition>VSWinExpress</Edition>
        <Edition>VSWinDesktopExpress</Edition>
      </VisualStudio>
  5. В этой же папке создайте файл с именем [Content_Types].xml и содержимым (в одну строку):
    <?xml version="1.0" encoding="utf-8"?>
    <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
        <Default Extension="dll" ContentType="application/octet-stream" />
        <Default Extension="vsixmanifest" ContentType="text/xml" />
        <Default Extension="rtf" ContentType="text/richtext" />
        <Default Extension="png" ContentType="application/octet-stream" />
        <Default Extension="pkgdef" ContentType="text/plain" />
    </Types>
  6. Создайте расширение для Visual Studio. Для этого упакуйте все файлы текущей папки в zip архив и измените его расширение на visx, например, MySQLConnector.vsix.
  7. Осталось только установить полученное дополнение.

Данный способ взят из статьи "Instalando MySql Connector no Visual Studio 2011 Beta", размещенной на бразильской версии сайта Microsoft TechNet.

Комментарии (35) -

Hi,

Установил, но не работает. При попытке соединения с БД:

Server Explorer/Connect to Database/MySQL Database <Continue>
При попытке ввести хоть что-то в поле Server Name, окно сразу закрывается. Хотя бы один символ.

Ещё вопрос - если заработает как ожидается, то можно ли подключиться с Google Cloud SQL (MySQL 5.5)?

св.

PS: VS 2012 RC (последний).

@ sv: Описанный способ я выполнил на 3 компах - везде ок. Поэтому подсказать что-либо не смогу. Только если попробовать отключить все остальные расширения VS для проверки. С Google Cloud SQL не работал.

@ Andrey:

Если возможно, выложите (или вышлите мне на email) Ваши модифицированные файлы, о которых идёт речь, и vsix-файл. Я сверю со своими.

св.

@ sv: Скинул изменения.

Максим 29.06.2012 9:59:24

Не получилось, пишет нет продуктов для установки или поврежден... А можно получить на почту Ваш файл *.vsix ? Спасибо.

@ Максим: Скинул.

Максим 01.07.2012 1:48:48

Спасибо, получил. Инсталляция прошла успешно. Но, в Server Explorer провайдер есть, тест подключения проходит, а баз не видит и при попытке подключения (жмем ОК) пишет, что не находит .Net Framework Data Provider. При подключении через - новый элемент, ADO.NET Entity Data MOdel провайдера нет, только microsoft SQL/

А сам .NET Connector установлен? Его версия соответствует версии MySQL?

Максим 01.07.2012 17:53:30

Все получилось, просто надо было удалить в VS2012 -> Extenchion and Apdates косо ставший коннектор от предыдущих проб. Потом поставить новый. Стал и на x32 и x.64. Спасибо

У кого не получалось ставить - версию 10 на 11 нужно менять в 2х местах Smile
Автор, поправьте пожалуйста в статье.

@ Анна: Если вы про тэг reference, то там указывается минимальная версия MinVersion.

Сергей 27.08.2012 16:04:43

та же самая проблема, что и у  sv

При попытке ввести хоть что-то в поле Server Name, User name, Password или при попытки поставить галочку Save my password окно сразу закрывается

Сергей 27.08.2012 16:53:49

Решил - удалил и установил конектор

можно Ваш vsix файл на почту?

Виталий 16.09.2012 18:14:04

Не ставится на Visual Studio Express 2012 для Desktop. Говорит расширение не может быть установлено ни для одного из установленных продуктов. Может чего изменить надо для Express выпуска?

@ Виталий: Необходимо указать Desktop Express версию в манифесте. Я поправил код в статье (там где про VisualStudio Version="10.0"), но не уверен что само расширение будет работать с Desktop Express.

Виталий 17.09.2012 22:26:23

@ Andrey: Попробовал, теперь Express версию видит, однако пишет другую ошибку - "Ошибка установки: Не удается установить это расширение, поскольку отсутствуют следующие ссылки: - Visual Studio MPF"

@ Виталий: Возможно уже проблемы совместимости самого расширения. Остается только ждать релиза с поддержкой VS2012.

Виталий 18.09.2012 2:43:40

@ Andrey: Понял, спасибо!

Спасибо! У меня данный способ сработал

Игорь 29.09.2012 18:57:18

Я что то не могу понять - после установки расширения должны компоненты появится или только или только Mysql database в change data source

@ Игорь: А какие компоненты вы ждете Задача этого расширения - установить драйвер для доступа к MySQL.

Игорь 29.09.2012 22:19:31

понятно, я вот через среду законектился к базе а как в коде написать что бы получить данные ?

using MySql;

@ Игорь: Использовать Entity Framework например.

здравствуйте, в 100500 раз создаю *.vsix  файл, а он все говорит, что "файл не является действительным пакетом *.vsix". в чем ошибка? и можно ли получить ваш *.vsix файл. Заранее Спасибо.

@ Yoj: Скинул по почте.

@ Andrey:Спасибо огромное.

Сделал все что здесь написано. Однако проблема такая же как и у sv. При попытке ввести сервер паро��ь или базу или поставить галочку на сохранение пароля вылетает полностью VS.

@ Fiver: Уже давно вышла полноценная версия под VS2012 (есть на сайте MySQL). Попробуйте её.

Сергей 03.07.2013 17:04:57

Всё получилось, коннект к MySql-базе есть, селекты делаются.
Однако, когда делают апдейт полей в таблице, то изменения в базу не вносятся, хотя и ошибка не выдаётся, код проходит через db.SaveChanges() гладко.
В чём может быть проблема такого странного поведения?

@ Сергей: Не сталкивался. А версия коннектора и MySQL какая? Вне контекста нет открытых транзакций?

Андрей 22.09.2014 18:19:47

Что делать если такая вещь выскакивает в cmd?

"msiexec" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

%SystemRoot%\System32 в переменной PATH есть.
C:\Windows\System32\msiexec.exe есть.

Давид 25.12.2015 21:46:17

здравствуйте, в 100500 раз создаю *.vsix  файл, а он все говорит, что "файл не является действительным пакетом *.vsix". в чем ошибка? и можно ли получить ваш *.vsix файл. Заранее Спасибо.

Свежие версии работают корректно с VS. Поэтому просто лучше взять свежую версию. Выслать vsix не могу из-за его отсутствия.

Pingbacks and trackbacks (1)+

Добавить комментарий