2016-06-22 50 views
2

我有两个简单的独立命令行程序。每个文件都是一个源文件(例如Program1.cs & Program2.cs),每个文件都包含一个static void Main(..),每个文件都应该编译为一个独立的二进制文件。他们是相关的,所以我想保持在一个简单的目录。从一个.Net Core项目创建两个独立的exes?

随着.Net预核心,它很容易建立与csc Program<x>.cs &出来的EXE。

有没有一种方法可以在.Net Core中进行复制?或者这是否意味着2个独立的项目?到目前为止,我找不到一种方法在一个项目中生成2个二进制文件,每个文件都有一个单独的入口点。

谢谢。

-

  • 这些都是简单的演示。我知道这可能不代表典型的项目,其中会有多个源文件和一个入口点。但是,缩小到简单情况的能力也很重要。
+0

不知道您是否可以使用单个项目来完成此任务,但是您可以使用单个解决方案来完成此任务。将您的课程放在解决方案中的不同项目中, 然后:Solution Properties - > Common Properties - > Startup Project - > Multiple Startup Projects。 – user5226582

+0

@ user5226582虽然不会将它们构建到相同的目录中。它只会在他碰到F5时启动它们。 –

+0

你可以自动化:[使用后期构建事件将文件从一个项目复制到另一个项目](https://stackoverflow.com/questions/11001822/copy-files-from-one-project-to-another-using-post- build-event-vs2010) – user5226582

回答

2

你可以做的是对每个程序使用单独的配置,并在该配置中设置要编译哪些文件。

在你的情况,你的project.json的相关部分可能是这样的:

"configurations": { 
    "Program1": { 
    "buildOptions": { 
     "compile": { 
     "exclude": "Program2.cs" 
     } 
    } 
    }, 
    "Program2": { 
    "buildOptions": { 
     "compile": { 
     "exclude": "Program1.cs" 
     } 
    } 
    } 
} 

可以再用dotnet build -c Program1建立PROGRAM1与dotnet run -c Program1同样地,对于Program2中运行它。

+0

谢谢,很好的解决方案。 – sfinnie

相关问题