从其他 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
添加为项目引用。最好的方法是将项目 B 的输出更改为 dll(目前是 exe)。要更改它,请转到Project B's
属性并将Output Type
更改为Class Library
。然后重新生成B
并将项目 B 的输出 dll 添加为对项目 A 的引用,并在 dll B 中调用窗体。这应该有效。
但是,如果用户执行任何操作,例如添加/更新/数据获取,则当前exe会引发异常:"对象引用未设置为对象的实例"。
然后,窗体可能具有它期望设置的一些属性,或者它希望您调用的构造函数重载。