我们有一个大型 WinForms 应用程序,我们不会很快重写(例如在 WPF 中)。Microsoft 继续积极支持 Winforms。
我们通常将 Winforms 构建配置设置为 AnyCPU 用于开发,而部署它的 MSBuild 进程将其构建为 64 位。开发配置设置为 AnyCPU,因为众所周知的问题是,如果应用程序构建为 64 位,则 Winforms 的可视化设计器将无法工作。来回切换做 UX 设计并不会太痛苦。但是,我们现在遇到了一个问题,我们希望在我们的 WinForms 应用程序中包含 Microsoft.CognitiveServices.Speech 的 NuGet 包。此程序集需要 64 位,如果应用程序设置为 AnyCPU,您将收到编译器错误。这消除了我们切换到 AnyCPU 进行 UX 设计的能力。
我们可以做的一种解决方法是,我们有一个旧版本的 Microsoft.CogitiveServices.Speech,它确实允许 AnyCPU,但该版本不再通过 NuGet 提供,因此我们必须将包检查到源代码控制中(糟糕)。
我可以做些什么来让 WinForms 应用程序保持设置为 AnyCPU,但引用一个显然只需要 64 位的程序集?