Instalando MySql Connector no Visual Studio 2011 Beta

Instalando MySql Connector no Visual Studio 2011 Beta

Instalando MySql Connector no Visual Studio 2011 Beta

O Visual Studio 2011, uma das principais ferramentas de desenvolvimento da Microsoft, foi disponibilizada em sua versão beta. Porém, ao experimentar uma ferramenta antes de sua versão final, podem-se encontrar alguns problemas, entre eles, a utilização de extensões. Extensões são recursos para personalizar, automatizar e estender o ambiente de desenvolvimento. Sendo que, com uma mudança de versão, algumas extensões têm de ser modificadas para que sejam instaladas e utilizadas.

Este artigo explica como podemos resolver essa situação para uma extensão. Desta forma, utilizamos como exemplo um caso comum, que é a instalação do MySql Connector/Net 6.5.4.

Para quem ainda não conhece, este Connector é utilizado para trabalhar com Entity Framework juntamente com MySql. Porém, este é um assunto para outro artigo.

Inicialmente para instalarmos o MySql Connector, temos de baixar o aplicativo no site da empresa:
http://dev.mysql.com/downloads/connector/net/

Neste endereço será disponibilizado um arquivo Microsoft Installer (com extensão MSI), que internamente efetua a instalação de uma extensão. 

Como estamos falando do Visual Studio 2011, após efetuarmos a instalação do Connector, veremos que este não disponibiliza a opção de conexão com o MySql, conforme imagem abaixo:



Isso porque essa Extensão tem uma restrição quanto às versões 2008 e 2010 do Visual Studio.

Para resolver essa situação, devem-se seguir os seguintes passos

Extrair arquivos do instalador MSI

Após efetuar a instalação do Connector, supondo que exista somente a versão 11 do Visual Studio na máquina, os arquivos de extensão não serão instalados. Desta forma, precisaremos extrair estes arquivos para podermos utilizá-los.

Para isto, copie o arquivo “mysql-connector-net-6.5.4.msi”, para uma pasta de fácil acesso. No exemplo, foi copiado para a raiz do drive D.

Execute os comandos:

  • md PastaExtraidos
  • msiexec /a mysql-connector-net-6.5.4.msi /qb TARGETDIR=D:\PastaExtraidos 

Será aberto e fechado um instalador, sendo que ao fechar, abra o Explorer e verifique a existência de arquivos na pasta “D:\PastaExtraidos”.

Caso sim navegue para a pasta:
D:\PastaExtraidos\VSPath\Extensions\Oracle\MySQL Connector Net\6.5.4

Esta pasta contem os arquivos que utilizaremos para instalar a extensão de forma correta.

Alterar manifesto do instalador de extensões

O arquivo de manifesto tem extensão “.vsixmanifest” e formato XML. Ou seja, abra o arquivo no próprio Visual Studio. (Exemplo na imagem abaixo)



O que deve ser feito é alterar as seguintes informações:

  • Tag “Identifier” / Atributo “Id” para “ALEXANDRE.DECANINI.MYSQL
  • Remover a Tag “InstalledByMsi”
  • Adicionar na Tag “SupportedFiles” o seguinte bloco:

Ao final o arquivo deve ficar da seguinte forma:


Agora salve o arquivo e feche o Visual Studio.

Após este passo, para que os tipos de arquivos sejam reconhecidos de forma correta, é preciso também que exista um arquivo chamado “[Content_Types].xml”.

Desta forma, siga as instruções:

  • Clique com o botão direito dentro da pasta com os arquivos > Novo > Arquivo Texto
  • Crie o arquivo com nome: “[Content_Types].xml”.
  • Abra o arquivo com o bloco de notas e internamente adicione o seguinte conteúdo:
    <?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>

Obs.: Para garantir o funcionamento, mantenha todo o conteúdo em uma única linha.

Ao final deste processo, você deve ter a seguinte estrutura na pasta:


Criar instalador de extensões

O instalador de extensões, de forma resumida, é um arquivo do tipo ZIP, com sua extensão modificada para “.vsix”.

Desta forma, efetuar o seguinte procedimento:

  • Selecione todos os arquivos contidos na pasta:
    “D:\PastaExtraidos\VSPath\Extensions\Oracle\MySQL Connector Net\6.5.4”
  • Clique com o botão direito > Enviar para > Pasta zipada
  • Crie o arquivo com o nome “Connector.vsix”
    O arquivo deve ficar com o ícone de extensão do Visual Studio, conforme exemplo abaixo:

Efetuar instalação

Após efetuar a criação do instalado, clique duas vezes no arquivo “Connector.vsix”, para iniciar a instalação e clique em “Install”.

Será exibida a seguinte tela:


Após efetuar a instalação, abra o Visual Studio 11 Beta > Server Explorer > Connect to Database


 
Agora aparecerá o Data Source para MySql, sendo que, poderá ser utilizado normalmente.

Obrigado.


Primeiro artigo escrito, porém, este tem validade até sair a próxima versão do MySql Connector. Mas o importante é entender este processo que pode ajudar a criar e alterar arquivos de extensão.

Classificar por: Data da Publicação | Mais Recente | Mais Úteis
Comentários
  • Obrigado pelo excelente tutorial! Consegui instalar, criar a conexão e visualizar os arquivos do banco de dados no Server Explorer. Porém não consigo completar o processo, ou seja a criação do dataset no "Add new data source": vai bem até o teste de conexão (que é bem sucedido), mas ao clicar no botão "finish", onde deveria ver as tabelas e queries aparece a mensagem "An error occurred while retrieving the information from the database: "SELECT command denied to user 'USER'@'168.60.30.11' for table 'proc' ". Curioso é que  VIA MS ACCESS, com ODBC eu consigo acessar normalmente os mesmos dados tanto no Access como no VS 11 Beta (via Access). Mas o ideal seria não ter que fazer essa ponte via Access. Alguém pode me dar alguma dica sobre isso? (obs: alterei os detalhes de "USER'@'168.60.30.11")

  • Muito bem explicado e organizado. Parabens!

  • Após meu comentário anterior, reinstalei o *.msi, e agora a mensagem de erro no final mudou para "Column count of mysql.proc is wrong. Expected 20, found 16. The table is probably corrupted." Mas não há tabelas corrompidas, pois consigo abri-las normalmente com o conector ODBC, pelo Access.

  • Hi

    Thanks for this article.

    I tried installing MySQL Connector Net for Visual Studio 2012 Pro RC as explained by you

    I am getting the following error. Please help

    7/12/2012 3:15:38 PM - Microsoft VSIX Installer

    7/12/2012 3:15:38 PM - -------------------------------------------

    7/12/2012 3:15:39 PM - Initializing Install...

    7/12/2012 3:15:39 PM - Microsoft.VisualStudio.ExtensionManager.MissingPackagePartException: This VSIX package is invalid because it does not contain the file extension.vsixmanifest at the root.

      at Microsoft.VisualStudio.ExtensionManager.InstallableExtensionImpl.ReadVSIXManifestFromPackage(Stream vsixStream, CultureInfo preferredCulture)

      at Microsoft.VisualStudio.ExtensionManager.InstallableExtensionImpl..ctor(String path, CultureInfo preferredCulture)

      at VSIXInstaller.App.InitializeInstall()

      at System.Threading.Tasks.Task.InnerInvoke()

      at System.Threading.Tasks.Task.Execute()

  • Hi and thanks for the article.

    At first I got the same error as Keshavachandra. It turned out I had a spelling error in my manifest. However now I instead get this:

    This extension cannot be installed because the following references are missing:

    - Visual Studio MPF

    I searched online for answeres and found that earlier versions of Visual Studio Express did not support some extensions. However I don't think that's the reason since VWDExpress is included as a version in the manifest here. Can anyone confim if this works with Visual Studio 2012 Express (RC)?

    Full log:

    2012-08-08 09:39:05 - Microsoft VSIX Installer

    2012-08-08 09:39:05 - -------------------------------------------

    2012-08-08 09:39:05 - Initializing Install...

    2012-08-08 09:39:05 - Extension Details...

    2012-08-08 09:39:05 - Identifier      : ALEXANDRE.DECANINI.MYSQL

    2012-08-08 09:39:05 - Name            : MySQL Tools for Visual Studio

    2012-08-08 09:39:05 - Author          : Oracle, Inc.

    2012-08-08 09:39:05 - Version         : 6.5

    2012-08-08 09:39:05 - Description     : Database design tools for MySQL

    2012-08-08 09:39:05 - Locale          : en-US

    2012-08-08 09:39:05 - MoreInfoURL     :

    2012-08-08 09:39:05 - InstalledByMSI  : False

    2012-08-08 09:39:05 - SupportedFrameworkVersionRange : [4.0]

    2012-08-08 09:39:05 -

    2012-08-08 09:39:05 - Supported Products :

    2012-08-08 09:39:05 - Microsoft.VisualStudio.Ultimate

    2012-08-08 09:39:05 - Version : [10.0]

    2012-08-08 09:39:05 - Microsoft.VisualStudio.Premium

    2012-08-08 09:39:05 - Version : [10.0]

    2012-08-08 09:39:05 - Microsoft.VisualStudio.Pro

    2012-08-08 09:39:05 - Version : [10.0]

    2012-08-08 09:39:05 - Microsoft.VisualStudio.Pro

    2012-08-08 09:39:05 - Version : [11.0]

    2012-08-08 09:39:05 - Microsoft.VisualStudio.VSTS

    2012-08-08 09:39:05 - Version : [10.0]

    2012-08-08 09:39:05 - Microsoft.VisualStudio.VSTD

    2012-08-08 09:39:05 - Version : [10.0]

    2012-08-08 09:39:05 - Microsoft.VisualStudio.VWDExpress

    2012-08-08 09:39:05 - Version : [11.0]

    2012-08-08 09:39:05 -

    2012-08-08 09:39:05 - References      :

    2012-08-08 09:39:05 - -------------------------------------------------------

    2012-08-08 09:39:05 - Identifier   : Microsoft.VisualStudio.MPF

    2012-08-08 09:39:05 - Name         : Visual Studio MPF

    2012-08-08 09:39:05 - Version      : 10.0

    2012-08-08 09:39:05 - MoreInfoURL  :

    2012-08-08 09:39:05 - Nested       : No

    2012-08-08 09:39:05 -

    2012-08-08 09:39:05 -

    2012-08-08 09:39:05 - Searching for applicable products...

    2012-08-08 09:39:05 - Found installed product - Microsoft Visual Studio Express 2012 RC for Web

    2012-08-08 09:39:05 - The extension with ID 'ALEXANDRE.DECANINI.MYSQL' is not installed to Microsoft Visual Studio Express 2012 RC for Web.

    2012-08-08 09:39:05 - Found installed product - Global Location

    2012-08-08 09:39:06 - The following target products have been selected...

    2012-08-08 09:39:06 - Microsoft Visual Studio Express 2012 RC for Web

    2012-08-08 09:39:06 -

    2012-08-08 09:39:06 - Beginning to install extension to Microsoft Visual Studio Express 2012 RC for Web...

    2012-08-08 09:39:06 - Install Error : Microsoft.VisualStudio.ExtensionManager.MissingReferencesException: This extension cannot be installed because the following references are missing:

    - Visual Studio MPF

      at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.CheckForInstallBlockers(InstallableExtensionImpl extension, IInstalledExtensionList modifiedInstalledExtensionsList, Boolean isNestedExtension, Boolean& olderVersionInstalled)

      at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallInternal(InstallableExtensionImpl extension, Boolean perMachine, Boolean isNestedExtension, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, AsyncOperation asyncOp, UInt64 totalBytesToWrite, UInt64& totalBytesWritten)

      at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.BeginInstall(IInstallableExtension installableExtension, Boolean perMachine, AsyncOperation asyncOp)

      at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallWorker(IInstallableExtension extension, Boolean perMachine, AsyncOperation asyncOp)

  • I spent complete night to get solution .... but no luck...

    9/5/2012 12:24:43 PM - Microsoft VSIX Installer

    9/5/2012 12:24:43 PM - -------------------------------------------

    9/5/2012 12:24:43 PM - Initializing Install...

    9/5/2012 12:24:43 PM - Microsoft.VisualStudio.ExtensionManager.MissingPackagePartException: This VSIX package is invalid because it does not contain the file extension.vsixmanifest at the root.

      at Microsoft.VisualStudio.ExtensionManager.InstallableExtensionImpl.ReadVSIXManifestFromPackage(Stream vsixStream, CultureInfo preferredCulture)

      at Microsoft.VisualStudio.ExtensionManager.InstallableExtensionImpl..ctor(String path, CultureInfo preferredCulture)

      at VSIXInstaller.App.InitializeInstall()

      at System.Threading.Tasks.Task.InnerInvoke()

      at System.Threading.Tasks.Task.Execute()

  • estou tentando fazer isto no Microsoft Visual Studio Express 2012 for Windows Desktop.

    como posso proceder.

  • No funciona Mismo Problema que  Keshavachandra

  • Cara isto não funciona mais Deca, hahaha parabéns pelo post, mesmo que antigo heim, abraços.

    Edilson (Ex BSI)

Página 1 de 1 (9 itens)