如何在vs2022(64位)中将32位自定义Windows窗体控件添加到Visual Studio Toolbox中

问题描述 投票:0回答:1

我想在 vs2022(64 位)的 Visual Studio Toolbox 中添加 32 位自定义 Windows 窗体控件。 我尝试过的: “工具箱”->“选择项目”->然后将“xxx.dll”导入为“.Net Framework 组件”。但是,显示“xxx.dll”文件无效。

Shyam Gupta(Windows Forms 高级软件工程师)在 .net 博客

中表示 vs2022(64 位)无法加载 32 位相似/组件

一些有用的文档:document-1document-2document-3

c# .net visual-studio winforms custom-controls
1个回答
0
投票

Visual Studio 2022 是 64 位进程,无法加载 32 位程序集。由于此技术限制,在 Visual Studio 进程中运行的 Windows 窗体 .NET Framework 进程内设计器无法加载 32 位程序集中存在的控件。对于拥有 Windows Forms .NET Framework 项目的客户来说,这是 Visual Studio 2022 采用的主要障碍,这些项目利用 ActiveX/COM 控件或 32 位程序集中包含的其他自定义控件,并且无法更新到 AnyCPU 或 .NET。到目前为止,此类项目只能使用 Visual Studio 2019 中的 Windows 窗体设计器,因为它是 32 位进程。

以前版本的 Visual Studio 面向 32 位,您的项目可能编译为 AnyCPU,在设计模式下会选择 32 位以匹配 Visual Studio。 32 位特定引用有效,但如果您有 64 位特定引用,则设计器可能会遇到问题。在 Visual Studio 2022 中,问题发生了逆转。 Visual Studio 2022 仅提供 64 位版本。编译为 AnyCPU 的组件和库可在 32 位和 64 位中工作,并且在 Visual Studio 2022 64 位中运行时不会出现问题。但是,升级到 Visual Studio 2022 后,如果项目依赖于 32 位特定组件,则您的项目可能无法在设计时运行。即使您引用的组件是为 AnyCPU 编译的,但碰巧直接引用 32 位组件或 32 位 COM\ActiveX 库,情况也是如此。

© www.soinside.com 2019 - 2024. All rights reserved.