Al agregar una referencia a Microsoft.Office.Interop.Excel en mi equipo, Visual Studio agrega esto al archivo de proyecto:diferentes referencias de interoperabilidad en dos equipos diferentes no funciona
<COMReference Include="Excel">
<Guid>{00020813-0000-0000-C000-000000000046}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>5</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
Hay es otro desarrollador en el equipo que recibe errores y necesita agregar un archivo DLL en el proyecto llamado Interop.Excel.dll, que sustituye el código anterior con esto en el archivo del proyecto:
<Reference Include="Interop.Excel, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>My Project\Interop.Excel.dll</HintPath>
</Reference>
esto funciona en mi computadora.
¿Podría explicar las diferencias entre los dos métodos, cuál es el mejor, y cómo hacer que el primero funcione en otras computadoras?
También tenga en cuenta que los PIA contienen un código de pegamento adicional que evita las fugas de memoria/recursos que podrían ocurrir al usar los conjuntos de interoperabilidad generados. –
¿Cómo puedo asegurarme de que se use el PIA y no la interoperabilidad generada? Creo que estoy viendo las fugas de memoria/recursos mencionadas en el comentario de @David Schmitt –
@ user260197: El PIA debe estar instalado correctamente en el sistema. Puede obtener una configuración de Microsoft que se encargará de la instalación. Es especialmente importante que el PIA esté en el GAC y * registrado *. Vea los detalles en http://msdn.microsoft.com/en-us/library/aa679806%28office.11%29.aspx –