【发布时间】:2022-06-17 20:20:06
【问题描述】:
我使用 AsyncPackage 类创建了一个 Visual Studios 扩展,它看起来像这样:
public sealed class Tools : AsyncPackage, IDisposable
{
internal const string PrjCATIDCSharpFileBrowseObject = "{8D58E6AF-ED4E-48B0-8C7B-C74EF0735451}";
private readonly List<IDisposable> _extenderProviders = new List<IDisposable>();
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
{
await base.InitializeAsync(cancellationToken, progress);
_extenderProviders.Add(new BrowseProvider(this, PrjCATIDCSharpFileBrowseObject));
}
}
BrowseProvider 上的代码 CS1748 出现 4 个错误。我不明白的是它给出的错误是针对BrowseProvider 不使用的类型。其中一个错误是针对IAsyncServiceProvider,但BrowseProvider 使用IServiceProvider。 AsyncPackage 确实继承了 IServiceProvider,但我将 BrowseProvider 更改为使用 IAsyncServiceProvider 但这并没有解决问题。在“工具”中的任意位置创建新的 BrowseProvider 对象会显示此 CS1748 错误。
我环顾四周,发现这个错误是由引用 DLL 引起的。我将 Microsoft.VisualStudio.Shell.Framework 设置为将其嵌入互操作类型属性设置为 False,但错误仍然存在。
我的所有代码都没有显示任何错误,除非我尝试使用工具包中的 with 创建 BrowseProvider 对象。我不明白为什么在 Tools 类中的任何位置创建新对象都会显示未使用类型的错误。
【问题讨论】:
标签: c# vs-extensibility