Visual Studio项目构建为可执行文件和DLL

时间:2010-03-17 22:55:51

标签: .net dll visual-studio-2008 msbuild

在Visual Studio 2008项目属性的“应用程序”选项卡中,我可以将“输出”类型设置为“Windows应用程序”,“控制台应用程序”或“类库”。我有一个项目,我想构建一个独立的工具(控制台应用程序)可用于我正在作为类库工作的其他几个工具。

VS GUI只允许我选择其中一个,并且一直两次构建项目是不方便的。

如何设置它以在单个构建作业中构建两种输出类型?我是否编写了一些自定义MSBuild .targets文件或什么?

5 个答案:

答案 0 :(得分:18)

如果我没弄错的话,你可以将EXE用作课堂图书 只需在其他项目中添加对它的引用即可。 .NET EXE只是一个程序集。

答案 1 :(得分:4)

您可以默认构建dll,并创建另一个依赖目标,它只是一个使用dll的包装器控制台应用程序。

答案 2 :(得分:3)

创建两个单独的项目,一个用于您的控制台应用程序,另一个用于类库。为每个设置适当的输出类型。

不要忘记将类库的引用添加到Console应用程序项目中。

答案 3 :(得分:3)

您无法编译到exe和dll。程序集是作为exe还是dll处理是由文件的可移植可执行标头中的单个位标志确定的(有关详细信息,请参阅http://msdn.microsoft.com/en-us/magazine/cc301805.aspx)。此标志不能同时具有这两个值。

您可以做些什么来满足您的需求是添加对您的exe的引用。您无法在某些版本的Visual Studio(2005及更低版本)中执行此操作,因为UI不会让您,但您可以手动编辑项目文件以添加引用。 Visual Studio的更高版本允许您使用UI添加对exe文件的引用。

答案 4 :(得分:3)

我认为最简单的解决方案是构建为EXE,然后进行后构建操作,将EXE复制到DLL中。在.Net中,两者之间没有真正的区别。