.net “无法加载文件或程序集”- Microsoft.Office.Interop.Excel

qjp7pelc  于 2023-01-10  发布在  .NET
关注(0)|答案(1)|浏览(397)

我有一个面向. Net 6.0框架的项目,我正在尝试使用Microsoft. Office. Interop. Excel,因为我想运行在同一本地系统上存在的. xlsm文件中配置的Excel宏。关于Excel版本-我正在运行Microsoft 365(我不知道这如何翻译成Excel版本,以前在命名更显式)。我运行代码时遇到的错误如下所示:
[![在此输入图像说明][1]][1]
这是发生问题的代码(基本上是最后一行):

void RunMacro(string macroFilename)
{
    Excel.Application xlApp = new Excel.Application();
    Excel.Workbook xlWorkBook;
   
    xlWorkBook = xlApp.Workbooks.Open(macroFilename);
    xlApp.Visible = true;

    xlApp.Run("Main");
}

为了在项目中包含Interop.Excel包,我尝试将其安装为NuGet包,因此在这种情况下,项目文件如下所示

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="DotNetCore.NPOI" Version="1.2.3" />
    <PackageReference Include="ExcelDataReader" Version="3.6.0" />
    <PackageReference Include="ExcelDataReader.DataSet" Version="3.6.0" />
    <PackageReference Include="Microsoft.Office.Interop.Excel" Version="15.0.4795.1001" />
  </ItemGroup>

</Project>

或者,我尝试使用"Add project reference"选项引用interop dll,因此下面是在这种情况下项目文件的外观:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="DotNetCore.NPOI" Version="1.2.3" />
    <PackageReference Include="ExcelDataReader" Version="3.6.0" />
    <PackageReference Include="ExcelDataReader.DataSet" Version="3.6.0" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="Microsoft.Office.Interop.Excel">
      <HintPath>..\..\..\..\..\..\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

然而,最终,屏幕截图中的错误仍然存在于两种情况下。是什么原因导致了这种情况?非常感谢任何帮助。

bwleehnv

bwleehnv1#

您需要安装相应版本的Office。这意味着对于Interop版本15.0.0.0,您应该安装Office 2013,其他版本的Office将无法工作。

相关问题