.NET Core WPF-带有动态类型转换的应用程序构建错误

.NET Core WPF-Application Build Error with dynamic typecast

我目前正在尝试使用 Solidworks API 为 Solidworks 创建带有 GUI (WPF) 的插件。我使用 .net-core 3.1 创建了 visual Studio 2019 的项目。此 API 主要使用 return 动态类型的函数。我之前将此代码用于控制台应用程序(也使用 .net-core 3.1),但没有出现任何构建错误。

using SW = SldWorks;
using System.Windows;

namespace dfdfdf
{
    public partial class App : Application
    {
        private void App_Startup(object sender, StartupEventArgs e)
        {
            //Connect to SW
            SW.SldWorks SolidWorksApp = null;
            SW.ModelDoc2 swDoc;
            SolidWorksApp = new SldWorks.SldWorks();

            //Connect to Document --> Build Error
            swDoc = SolidWorksApp.ActiveDoc;
        }
    }
}

现在使用 WPF 项目时出现以下错误:

The error is only shown when "only build" is selected on the error list

CS2066(无法将类型“type1”隐式转换为“type2”。存在显式转换(是否缺少强制转换?))

"ActiveDoc" 有一个动态的 return-value 并且使用显式转换工作正常:

swDoc = (SW.ModelDoc2) SolidWorksApp.ActiveDoc;

但我想知道为什么这会在 WPF 应用程序中而不是在控制台应用程序中导致错误。据我了解,在转换动态时我根本不应该出现构建错误,因为类型转换是在运行时而不是构建时完成的。

对于 COM-References,我激活了选项“嵌入式互操作类型”,是否还有其他我错过的导致此行为的选项?

如果 .core 需要显式转换,我可以接受。我只是希望你们中的一个能告诉我为什么 wpf 和控制台应用程序之间在这方面存在差异。

谢谢!

检查 this video,但由于存在许多兼容性问题,我强烈建议不要使用 .NET Core/.NET5-6 for SOLIDWORKS 插件。 Use.NET Framework 而不是加载项,并且可以将 .NET Core 用于独立应用程序。