Aquí hay una respuesta adicional ya que acabo de pasar por este proceso con ArcGIS 10.3 y Visual Studio 2015. Voy a pegar la respuesta que he publicado en https://geonet.esri.com/message/579779#579779 . Hay varios pasos, pero ninguno de ellos es demasiado difícil.
En primer lugar, para obtener el SDK instalado, es necesario agregar algunas claves de registro para que ArcGIS piensa que tiene una versión compatible de Visual Studio instalado.
-
Añadir valor de cadena de registro:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\12.0\InstallDir
(o la versión que busque el instalador del SDK) y configúrela:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\
(o cualquier versión de Visual Studio que esté intentando utilizar).
-
Añadir valor de cadena de registro:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\12.0\ShellFolder
(o la versión que busque el instalador del SDK) y configúrela:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\
(o cualquier versión de Visual Studio que esté intentando utilizar).
En segundo lugar, si está trabajando con un proyecto existente creado para/con una versión anterior de ArcGIS y Visual Studio y creando un complemento, es posible que tenga que editar el archivo de proyecto que crea el complemento para corregir parte de su tarea de creación. Más información en http://support.esri.com/en/knowledgebase/techarticles/detail/45263 .
-
Cambia
<Import Project="$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.targets" Condition="Exists('$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.targets')" />
a
<Import Project="$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.11.targets" Condition="Exists('$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.11.targets')" />
y cambiar
<Warning Text="Unable to create .esriAddin; missing ESRI ArcGIS Add-in SDK component(s)." Condition="!Exists('$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.targets')" />
a
<Warning Text="Unable to create .esriAddin; missing ESRI ArcGIS Add-in SDK component(s)." Condition="!Exists('$(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.11.targets')" />.
Como alternativa, puede copiar y cambiar el nombre del archivo ESRI.ArcGIS.AddIns.targets existente a ESRI.ArcGIS.AddIns.11.targets. MSBuildExtensionsPath se encuentra en el directorio Archivos de programa (x86).
En tercer lugar, si estás creando un complemento, tienes que editar el archivo .targets del paso anterior para buscar la versión de Visual Studio que estás intentando utilizar.
-
En
C:\Program Files (x86)\MSBuild\Esri\ESRI.ArcGIS.AddIns.11.targets
cambiar
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="PackageAddIn" Condition="'$(VisualStudioVersion)' == '12.0'" />
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="ValidateAddInXMLTask" Condition="'$(VisualStudioVersion)' == '12.0'" />
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="ConvertToRelativePath" Condition="'$(VisualStudioVersion)' == '12.0'" />
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="ResolveAddInReference" Condition="'$(VisualStudioVersion)' == '12.0'" />
a
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="PackageAddIn" Condition="'$(VisualStudioVersion)' == '14.0'" />
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="ValidateAddInXMLTask" Condition="'$(VisualStudioVersion)' == '14.0'" />
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="ConvertToRelativePath" Condition="'$(VisualStudioVersion)' == '14.0'" />
<UsingTask AssemblyName="ESRI.ArcGIS.AddIns.SDK.12, Version=10.3.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" TaskName="ResolveAddInReference" Condition="'$(VisualStudioVersion)' == '14.0'" />
Como alternativa, puede eliminar la Condition="'$(VisualStudioVersion)' == '12.0'" de estas entradas.
En cuarto y último lugar, necesitas una copia del shell de Visual Studio 2013 registrada en el GAC. Pude copiar esto desde otra máquina (que se encuentra en C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.Shell.12.0)
pero si no tienes acceso a una máquina con VS2013 instalado puedes descargar el SDK de Visual Studio 2013 desde https://www.microsoft.com/en-us/download/details.aspx?id=40758 y cópialo desde allí.
-
Encuentre una copia del Microsoft.VisualStudio.Shell.12.0.dll
para Visual Studio 2013 y cópielo en su equipo. Regístrelo en el GAC utilizando un símbolo del sistema elevado introduciendo gacutil /i Microsoft.VisualStudio.Shell.12.0.dll
desde la ubicación en la que copió el archivo en su máquina. Tenga en cuenta que ahora tendrá dos versiones de este archivo en el GAC, una de Visual Studio 2013 y otra de Visual Studio 2015. Esto se puede ver introduciendo gacutil /l
desde el símbolo del sistema para listar todas las entradas del GAC. Mis entradas se ven como:
Microsoft.VisualStudio.Shell.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Microsoft.VisualStudio.Shell.12.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Espero que esto ayude a otros.
Shea
0 votos
Indagando en el error, llego a la C:\Program Archivos (x86) \MSBuild\Esri\ESRI.ArcGIS.AddIns.targets En el caso de VS2010 y VS2013...., se llama a algunas tareas de ESRI.ArcGIS.AddIns.SDK.dll, pero no entiendo cuál es la diferencia, entre VS2010 y VS2013 ¿usan diferentes versiones de MSBuild?