gpt4 book ai didi

c# - CsProj 迁移 : dynamic becoming object on Microsoft. Excel.Interop 程序集

转载 作者:行者123 更新时间:2023-12-04 17:45:17 27 4
gpt4 key购买 nike

[VS 2017 上的 C# 4.6]

我们目前正在将我们的 Csproj 从旧格式迁移到新格式(显然),我们面临一个奇怪的问题。

一个项目正在使用 Microsoft.Office.Interop.Excel 程序集。在某些时候,我们像这样操作 Excel Range 属性:

public static void ApplyGradient(Range rng)
{
rng.FormatConditions[1].ColorScaleCriteria[1].FormatColor.TintAndShade = 0;
}

从 VS 浏览程序集时,我们观察到项目中的不同 Microsoft.Office.Interop.Excel 签名。这是我们看到的:

结果是编译问题,在新版本的csproj中,因为ColorScaleCriteria显然没有被理解为object的属性。

我们尝试了几种操作,比如在我们的项目中添加 System.Dynamic.Runtime 依赖项,但没有解决任何问题。

如有任何帮助,我们将不胜感激。非常感谢!

最佳答案

可能在两年多之后这不再相关,但对于面临同样问题的人来说:

您需要删除对 Bundle.Microsoft.Office.Interop/Microsoft.Office.Interop.Excel 的 NuGet 引用。

将 COM 引用添加到 Microsoft Excel 16.0 Object Library 并将 Copy LocalEmbed Interop Types 设置为 Yes.

或者您可以将其添加到您的 .csproj 文件中:

  <ItemGroup>
<COMReference Include="Microsoft.Office.Excel.dll">
<WrapperTool>tlbimp</WrapperTool>
<VersionMinor>9</VersionMinor>
<VersionMajor>1</VersionMajor>
<Guid>00020813-0000-0000-c000-000000000046</Guid>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
<EmbedInteropTypes>true</EmbedInteropTypes>
<Private>true</Private>
</COMReference>
</ItemGroup>

从这个线程得到解决方案:https://stackoverflow.com/a/59138607

关于c# - CsProj 迁移 : dynamic becoming object on Microsoft. Excel.Interop 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52426965/

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