首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建与控制台和DLL相同的项目

构建与控制台和DLL相同的项目
EN

Stack Overflow用户
提问于 2016-08-17 07:06:16
回答 6查看 4.1K关注 0票数 10

我在Visual中有一个C#项目,它将Console Application作为输出类型。

但我也需要这个项目的Class Library作为另一个解决方案。

现在我必须每次切换输出类型,但我不知道是否可以在同一个exedll中生成build-event

这里有post-build-event吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-08-17 07:09:37

据我所知,编译后不可能更改输出类型。尽管如此,如果您的解决方案中有两个项目(如控制台和库),它们将使用相同的源代码文件,但有不同的输出类型。这样,您就可以有不同的输出,而不需要任何代码重复。

票数 12
EN

Stack Overflow用户

发布于 2016-08-17 07:14:14

通常可以引用.net exe程序集,因为它是类库.

因此,您可以继续创建一个exe文件,并在您的其他项目中引用exe (听起来很奇怪,但效果很好)。

这是用于浏览引用的对话框。如您所见,您可以选择exe文件。

但正如评论所说,这真的取决于你的使用程序是什么。我不建议向您的客户发送带有入口点的exe,希望客户不会发现该exe。但是你能做的就是在条件下编译你的入口点。

例如

代码语言:javascript
复制
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
  }
}

如果有相关的原因需要一个附带的exe和一个附带的类库,我会像这样重构您的解决方案:

  • (A)完整应用程序(.sln)
    • (B)控制台-应用程序(.csproj),它引用(C)
    • (C)类库项目(.csproj)

对其他人来说,有一个应用程序可以使用库和库本身,这一点是非常清楚的。

票数 4
EN

Stack Overflow用户

发布于 2016-08-17 07:10:10

控制台应用程序是项目的类型。你不能改变它。

您可以-and必须做的是,将您的逻辑带到类库项目中,并从任何类型的项目中使用类库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38990165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档