gpt4 book ai didi

c# - 在两个程序集中定义了相同的类型

转载 作者:行者123 更新时间:2023-11-30 12:23:59 25 4
gpt4 key购买 nike

我有一个 VSTO 插件,它使用 CustomTaskPanes。我的代码编译并运行良好,但问题来自代码分析器,例如 Resharper 和 .net 的代码契约(Contract)。

此代码会从两个分析器中引发错误消息:

CustomTaskPane taskPane = CustomTaskPanes.Add(new UserControl(), "Title");
taskPane.DockPosition = MsoCTPDockPosition.msoCTPDockPositionFloating;

Cannot convert source type 'Microsoft.Office.Core.MsoCTPDockPosition [office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]' to target type 'Microsoft.Office.Core.MsoCTPDockPosition [Microsoft.Office.Tools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]'

这很奇怪,因为公共(public)类型 Microsoft.Office.Core.MsoCTPDockPosition 仅存在于 office.dll 中。无论如何,我尝试使用别名解决它并将 Microsoft.Office.Tools.Common 命名为 Tools_Common:

extern alias Tools_Common;
using System;
using System.Windows.Forms;
using Microsoft.Office.Core;
using Tools_Common::Microsoft.Office.Tools;
using CustomTaskPane = Tools_Common::Microsoft.Office.Tools.CustomTaskPane;

但是一点用都没有。消息的原因是什么?我该如何解决它(尤其是对于代码契约(Contract))?

此外,我还发现了另一个奇怪的工件 - Resharper 的自动完成显示 MsoCTPDockPosition 就像它存在于 Microsoft.Office.Tools.Common.dll 中一样,但后来我尝试进行自动完成,它使用 office.dll 版本: enter image description here

最佳答案

您应该使用 VS COM 选项卡中的 Microsoft Office 15.0 Object Library 而不是 office.dll

关于c# - 在两个程序集中定义了相同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097481/

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