Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

916
Visualizações
Interoperabilidad de .NET core 3.0 y MS Office

Estoy tratando de usar el núcleo .NET lanzado recientemente con MS Office usando los ensamblajes de interoperabilidad

Tengo un archivo de proyecto mínimo

 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Office.Interop.Word"> <Version>15.0.4797.1003</Version> </PackageReference> </ItemGroup> </Project>

y este programa C#

 using System; using Microsoft.Office.Interop.Word; namespace ii { class Program { static void Main(string[] args) { var app = new Application(); Console.WriteLine(app.Version); app.Quit(); } } }

Desafortunadamente esto falla con

 Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. The system cannot find the file specified. File name: 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'

Cuando agregué el paquete al proyecto obtuve esto

 warn : Package 'Microsoft.Office.Interop.Word 15.0.4797.1003' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.0'. This package may not be fully compatible with your project. info : Package 'Microsoft.Office.Interop.Word' is compatible with all the specified frameworks in project

lo que implica 'compatible' pero no 'totalmente compatible'

¿Hay alguna manera de hacer esto o debo usar .NET Framework en lugar de Core?

Estoy usando Windows 10, .NET core 3.0.100 y MS Office 365 (Word es la versión 16.0.11929.20298)

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

Mención de pasos para migrar cualquier interoperabilidad o dll que no sea compatible con .net core

  1. Crear proyecto .net core
  2. Obtenga dll del proyecto anterior / a través del paquete nuget
  3. Si es dll de interoperabilidad, haga clic con el botón derecho en las dependencias
  4. Haga clic en Agregar referencia com
  5. Seleccione dll que desea agregar
  6. Después de agregar, seleccione esas dependencias y haga clic en la propiedad
  7. Dentro de la ventana de propiedades Establezca dos propiedades a) Copiar local - Sí, b) Incrustar tipos de interoperabilidad - Sí
  • Capturas de pantalla Ventana de propiedades
  1. Escribe tu código
  2. Ejecutalo
  3. ¡Funcionará para ti!

El paquete Nuget no funcionará. Consulte las capturas de pantalla. Paquete no compatible

¡Feliz codificación! Gracias

over 4 years ago · Santiago Trujillo Relatório

0

Simplemente elimine la referencia de Nuget al paquete Interop y agregue Microsoft Excel desde Reference Manager. ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório

0

Los ensamblajes de interoperabilidad no son compatibles con .NET Core. Tienes que usar el marco completo.

Consulte también este problema de GitHub

Si desea crear documentos de Office mediante programación, es posible que desee echar un vistazo a Office OpenXML SDK .

over 4 years ago · Santiago Trujillo Relatório

0

La solución a esto es un poco peculiar, pero posible.

Cree un nuevo proyecto de .NET Framework 4.X. Agregue las referencias COM relevantes al proyecto. Edite el .csproj de su proyecto .NET Core 3.0 y agregue las referencias generadas desde el proyecto .NET Framework a la etiqueta <ItemGroup> .

Debería verse algo similar a:

 <ItemGroup> <COMReference Include="Microsoft.Office.Core"> <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid> <VersionMajor>2</VersionMajor> <VersionMinor>8</VersionMinor> <Lcid>0</Lcid> <WrapperTool>primary</WrapperTool> <Isolated>False</Isolated> <EmbedInteropTypes>True</EmbedInteropTypes> </COMReference> ... more references </ItemGroup>

No use los paquetes NuGet, no son compatibles con .NET Core.

Actualizar:

Ahora puede agregar las referencias COM directamente desde el IDE (desde Visual Studio 2019 v16.6):

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema. Lo arreglé abriendo las propiedades de referencia y configurando "Copiar local" e "Incrustar tipos de interoperabilidad" en "Sí".

Actualización: esto en realidad hace lo mismo que agregar estas 2 líneas a la referencia COM en el archivo .csproj.

 <COMReference Include="Microsoft.Office.Core"> ... <EmbedInteropTypes>True</EmbedInteropTypes> <Private>true</Private> </COMReference>

La etiqueta "Privado" no se menciona en las respuestas aceptadas, pero evita muchos problemas.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda