首页 > 解决方案 > 在 WinForms 项目中包含仅 64 位程序集

问题描述

我们有一个大型 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 位的程序集?

标签: .netwinforms64-bitanycpu

解决方案


快照显示了我在 VS 2017 中看到的内容。有时会导致编译失败的神秘错误! 快照显示了我在 VS 2017 中看到的内容。有时会导致编译失败的神秘错误!


推荐阅读