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

从其他exe(引用exe)打开项目中的表单会引发对象引用错误C#,c#,winforms,C#,Winforms,比方说-我正在开发项目A,并且已经有一个项目B的输出作为exe文件。 我正在使用B的输出(比如-B.exe)作为项目中的引用 我需要在A中直接使用B.exe的表单 例如: Namespace A { B.Reports.TaxReport reportForm = new B.Reports.TaxReport(); reportForm.ShowDialog(); } 这里的问题是,表单在新的Exe中正确加载,并且所有的数据库都在获取。但是,如果用户执行任何操作,如添加/更新

比方说-我正在开发项目A,并且已经有一个项目B的输出作为exe文件。 我正在使用B的输出(比如-B.exe)作为项目中的引用

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

例如:

Namespace A
{
    B.Reports.TaxReport reportForm = new B.Reports.TaxReport();
    reportForm.ShowDialog();
}
这里的问题是,表单在新的Exe中正确加载,并且所有的数据库都在获取。但是,如果用户执行任何操作,如添加/更新/数据获取,当前exe将抛出一个异常:“对象引用未设置为对象的实例”

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

但是,如果用户执行任何操作,如添加/更新/数据获取,当前exe将抛出一个异常:“对象引用未设置为对象的实例”


那么表单可能有一些它希望设置的属性,或者它希望您调用的构造函数重载。

不要将
.exe
添加为项目引用。最好的方法是将项目B的输出更改为dll(当前为exe)。要更改它,请转到
项目B的
属性,并将
输出类型
更改为
类库
。然后重新生成
B
并添加项目B的输出dll作为对项目A的引用,并在dll B中调用表单。这应该是可行的。

这是我的第一个想法,但不幸的是表单不需要任何属性或构造函数重载。如果你这么自信地说,你必须拥有表单的源代码。在项目中打开表单文件,放置断点,然后查看发生了什么。这两个都是我自己的项目。但是引用EXE不允许我查看代码,因为它被称为“元数据”。如果您只是从Visual Studio打开源文件,我会这样做。请尝试一下,然后返回此处。谢谢