2011-07-07 112 views
-1

我从源项目生成了一个DLL。我们称之为sourceProject.dllC#中的DLL依赖关系

该项目取决于first.dll等DLL。

sourceProject.dll --> first.dll 

当我运行sourceProject.dll,我得到一个错误,first.dll是“缺少一个或多个项目引用”。

如果我理解正确,sourceProject.dll试图在first.dll中使用一个类,但显然first.dll对它自己的一个DLL有不良的引用。因此,first.dll会重新生成(在sourceProject.dll的运行时),但它的构建不正确。最后,sourceProject.dll爆炸,因为first.dll不好。

这是真的吗?

感谢, 凯文

+0

是的。如果First.dll有错误,则不会输出。 – Mrchief

+0

当sourceProject.dll运行时first.dll会被重建吗? –

+0

是的。如果它没有构建或已经改变,它将被重建 – Mrchief

回答

4

当我运行sourceProject.dll

你不能运行 DLL文件在.NET。在可以具有不同类型的应用程序(控制台,WinForms,ASP.NET ...)中使用程序集。因此,如果sourceProject.dll取决于first.dll,则使用sourceProject.dll的应用程序需要在其工作文件夹(用于桌面应用程序的当前文件夹和用于ASP.NET的bin文件夹)中具有这两个程序集。

+0

假设sourceProject.dll取决于:first.dll,second.dll和third.dll。 然后sourceProject.dll需要包含first.dll,second.dll和third.dll所依赖的DLL的全部**? –

+0

@凯文,这取决于。如果'sourceProject.dll'使用运行时类型绑定(如Reflection),则不一定需要引用这些依赖关系。当然,在最终的可运行应用程序中,您需要全部引用它们。如果你使用静态绑定,那么显然你需要引用first.dll,second.dll或者sourceProject.dll甚至不会编译。 –

0

我是你的拳头项目不包含在解决方案构建中。从解决方案文件中右键单击检查配置管理器。

我想工作这是你必须建立你的第一个项目(手动),然后再建立另一个项目。