我已经在新项目中为我的项目添加了一个新项目,我刚刚创建了一个新类,并将代码复制到新类中,我希望在另一个项目中使用该代码。 新项目也是Windows窗体类型。
我想要的是从新项目类创建一个dll,以便我以后可以在另一个项目中使用dll来使用我刚刚添加的新项目中的dll中的类。
所以在新添加的项目中,我在项目属性>应用程序>输出类型>类库中进行了更改 但是现在当我试图添加新项目类的引用时,我无法在bin> Debug目录下的新项目中找到任何dll文件。
我又有一个项目,我在其解决方案中添加了一个新项目。 新项目也是一个没有任何代码的Windows窗体类型,但只有一个添加的类,我添加了一些代码。 我想要做的是创建一个新项目的DLL,以便我稍后可以在主项目中使用该类。
但是为什么它没有创建任何dll?
答案 0 :(得分:1)
简短的回答是,你可能还没有编译它?
然而,有一个更好的答案。如果我理解正确,你有这个:
Solution 1
-- Windows Forms Project A
-- Windows Forms Project B
Windows Forms Project B
中的代码需要Windows Forms Project A
访问。你在这里朝着正确的方向迈出了一步:
所以在新添加的项目中,我在项目属性中更改了>应用程序>输出类型>类库
但是,您可能需要采取额外措施来清理它。因为现在您的Class Library Project B
仍然引用它不需要的Windows窗体库。实际上,它不应该引用Windows窗体库或任何其他UI库。为了便于移植,类库应完全与UI无关。 (作为提示,如果您发现自己需要从可移植类库中引用UI库,那么您可能在某个地方犯了一个错误,并且应该重新考虑逻辑属于哪里。)
因此,首先,创建一个全新的类库项目,以便您拥有:
Solution 1
-- Windows Forms Project A
-- Class Library Project B
接下来,您需要Project A
来引用Project B
。您试图通过引用输出DLL来执行此操作,但这不是正确的方法,除非您有非常这样做的充分理由。相反,由于它们位于同一个解决方案中,因此您可以使用Project Reference。
如果您使用的是Visual Studio,请右键点击Project A
并选择Add Reference
。根据Visual Studio的版本,布局将有所不同。但是您要添加的是对解决方案中另一个项目的项目引用。选择Project B
即可完成设置。
此时,您无需担心Project B
独立编译。它仅仅是Project A
引用的组件。编译Project A
时,默认情况下,Project B
的DLL将在编译输出中。
答案 1 :(得分:0)
编辑:如果您没有找到DLL,可能是因为它尚未构建。此外,当两个项目在同一个解决方案中时显式添加DLL可能不是你想要做的。
继续我的原帖: 不要浏览DLL,而是单击“添加引用”对话框中的“项目”选项卡,它将从那里添加引用。
答案 2 :(得分:0)
将新项目添加到解决方案时,需要指定类库,而不是Windows窗体应用程序。完成后,您将能够向第一个项目添加引用,第二个项目(库)应该是其中一个选项卡中的选项(可能是“项目”或“解决方案”,具体取决于您的版本)。在您实际构建类库项目之前,DLL不会显示。