如何在 .Net Standard 类库中引用 Microsoft.VisualBasic?

14

我正在尝试在 .Net Standard 2.0 类库中利用一些静态类(特别是 Financial.Rate 函数)在 Microsoft.VisualBasic 命名空间中。这是一个 C# 项目,该库包含各种金融函数和计算。我知道简单地添加 using Microsoft.VisualBasic; 是不够的,因为我需要引用实际的 dll。但我不确定如何在 .net Standard 类库中做到这一点。

我尝试向库中添加 NuGet 包 Microsoft.VisualBasic,但那样无法让我访问所需的静态类。我对 .Net 还很陌生,所以我不知道如何正确地引用程序集。我能找到的所有示例都涉及一些旧的 .net Framework 库,而不是 .net Standard。下面是参考管理器、解决方案资源管理器和使用语句的屏幕截图链接:

参考管理器屏幕截图

解决方案资源管理器

使用语句和实现

任何帮助或建议将不胜感激。


你能在 .NET Standard 上使用 VisualBasic 金融库吗? - Luis Palacios
@LuisPalaicos 没有直接导入它们的方法。您可以使用类似 dotPeak 的工具将 VB 库反编译为 C#。我以前成功地做过这件事。 - Luke Bethay
1
微软不支持其支柱语言之一的核心API的迁移路径,这让人非常失望。在.NET Standard中没有对Microsoft.VisualBasic的支持意味着无法在.NET Framework和Core+之间共享使用VB API的现有VB库,除非进行大量重写。在.NET Core中支持它证明了他们具有跨平台实现,并且可以将其移植到Microsoft.Windows.Compatibility中,但出于某种原因他们没有这样做。如果你问我,这是一个相当大的遗漏。 - Jacob Stamm
1个回答

6

1
当我添加NuGet包“Microsoft.VisualBasic”,然后添加Microsoft.VisualBasic的using语句时,静态方法(如financial.rate)仍不存在于我的当前上下文中。我已经添加了我的解决方案资源管理器和using语句的屏幕截图,以展示我所说的内容。我是实现错误还是缺少某些东西? - Luke Bethay
1
那个Nuget包相当无用。奇怪的是,你会想知道是否有任何使用netstandard的vb.net程序员。在vb.net netstandard项目中,情况并没有变得更好,看起来他们只是还没有完成工作或选择放弃在Unix平台上支持vb.net。 - Hans Passant
@LukeBethay 我回答了你的问题,展示了添加引用的正确方法,但我无法帮助将 Financial 类带到 .NET Standard/.NET Core,因为微软目前只计划在 .NET Framework 上发布它,https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.financial?view=netframework-4.7.1#Applies_to 如果你想看到改变,请在 GitHub 上提出新问题。之前的问题,比如这个,仍然没有解决。 - Lex Li
@LexLi 我明白了,我会尝试找到一个解决方法。感谢您提供的文档。 - Luke Bethay
你最终找到解决方法了吗,@LukeBethay?我也遇到了同样的问题 :/ - Luis Palacios

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接