我在Visual Studio中有一个C#项目,输出类型为控制台应用程序
。
但是我还需要另一个解决方案的类库
。
现在我每次都要切换输出类型,但我想知道是否可以在同一生成事件
中生成exe
和dll
?
是否有后生成事件
来实现此功能?
我在Visual Studio中有一个C#项目,输出类型为控制台应用程序
。
但是我还需要另一个解决方案的类库
。
现在我每次都要切换输出类型,但我想知道是否可以在同一生成事件
中生成exe
和dll
?
是否有后生成事件
来实现此功能?
class Program {
// This is the entry point of the EXE
public static void Main() {
#if DEBUG
// Start Debug Application
...
#else
// Shipped to client - Entry point disabled
return;
#endif
}
}
控制台应用程序是您项目的类型。您无法更改它。
您可以 - 也必须 - 将您的逻辑带入类库项目中,并从任何您想要的类型的项目中使用您的类库。
Main
只调用一些函数。我有一个类似的需求,在这篇文章或其他地方都找不到明确的答案。我目前有一个类库,想创建一个控制台应用程序项目,而不复制任何代码。理想情况下应该有两个项目,一个用于创建控制台应用程序,另一个用于创建类库。这也是Visual Studio建议的做法。当我尝试运行类库时,我得到了以下消息。
这明显要求我们向解决方案中添加可执行项目,并将库项目添加为引用。
以下是操作步骤:
右键单击解决方案-> 添加新项目-> 控制台应用程序-> 选择名称-> 确定。
右键单击控制台项目 -> 添加引用 -> 在引用管理器中,点击项目选项卡并选择其他项目(在我的情况下,这是类库项目,如果未列出,则只需单击浏览并选择 .csproj 文件)-> 确定。
现在,要使用其他项目中的类,只需简单地做 using LibraryProjectNameSpace
就是这样。 Bingo!
另外,正如其他答案中提到的那样,不可能有相同的项目生成 .exe 和 .dll。但是您可以通过拥有两个项目来使同一个解决方案生成这两个文件。这样,每次切换项目输出时都不需要进行任何更改。
顺便提一下,我使用的是Visual Studio 2017.
我不太确定为什么有人认为这是不可能的,但实际上是可以的。
最简单的方法是将exe
重命名为dll
。听起来很愚蠢,但在许多情况下有效。此外,正如“Peter I”所说,.NET exe可以作为程序集导入其他项目中,因此您实际上可能根本不需要dll。
另一种方法是使用C#命令行
,如此处所述:/out (C# Compiler Options)。
您可以在Pre/Post构建事件中使用命令行选项Pre-build Event/Post-build Event Command Line Dialog Box。