从其他 exe(引用 exe)打开项目中的窗体会引发对象引用错误 C#

本文关键字:exe 体会 窗体 对象引用 错误 项目 引用 其他 | 更新日期: 2023-09-27 18:33:49

假设 - 我正在开发项目 A,并且已经将项目 B 的输出作为 exe 文件。我在 A 项目中使用 B 的输出(比如说 - B.exe)作为参考。

我需要直接在 A 中使用 B.exe 的表单。

例:

Namespace A
{
    B.Reports.TaxReport reportForm = new B.Reports.TaxReport();
    reportForm.ShowDialog();
}

这里的问题是,表单在新的 Exe 中正确加载,并获取所有数据库。但是,如果用户执行任何操作,例如添加/更新/数据获取,则当前exe会引发异常:"对象引用未设置为对象的实例"。

如何解决这个问题?如果没有,是否有任何解决方法可以帮助我将表单从参考 EXE 打开到当前正在开发的项目?

从其他 exe(引用 exe)打开项目中的窗体会引发对象引用错误 C#

不要将.exe添加为项目引用。最好的方法是将项目 B 的输出更改为 dll(目前是 exe)。要更改它,请转到Project B's属性并将Output Type更改为Class Library。然后重新生成B并将项目 B 的输出 dll 添加为对项目 A 的引用,并在 dll B 中调用窗体。这应该有效。

但是,如果用户执行任何操作,例如添加/更新/数据获取,则当前exe会引发异常:"对象引用未设置为对象的实例"。

然后,窗体可能具有它期望设置的一些属性,或者它希望您调用的构造函数重载。