gpt4 book ai didi

.NET core 3.0 和 MS Office Interop

转载 作者:行者123 更新时间:2023-12-04 11:08:22 25 4
gpt4 key购买 nike

我正在尝试使用互操作程序集将最近发布的 .NET 核心与 MS Office 一起使用

我有一个最小的项目文件

<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>

和这个 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();
}
}
}

不幸的是,这失败了

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'

当我将包添加到项目时,我得到了这个

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

暗示“兼容”但不是“完全兼容”

有没有办法做到这一点,或者我必须使用 .NET Framework 而不是 Core?

我使用的是 Windows 10、.NET core 3.0.100 和 MS Office 365(Word 版本为 16.0.11929.20298)

最佳答案

对此的解决方案有点古怪,但可能。

创建一个新的 .NET Framework 4.X 项目。将相关的 COM 引用添加到项目中。编辑 .csproj .NET Core 3.0 项目,并将从 .NET Framework 项目生成的引用添加到 <ItemGroup>标签。

它应该类似于:

<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>

不要使用 NuGet 包,它们与 .NET Core 不兼容。

更新:

您现在可以直接从 IDE 添加 COM 引用(自 Visual Studio 2019 v16.6 起):

enter image description here

关于.NET core 3.0 和 MS Office Interop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58130446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com