运行 构建过程中的 C# 控制台应用程序

Run a c# console application in build process

假设我们有一个包含三个项目的解决方案:

  1. DownloadDataBase 是一个控制台应用程序,它从 Web 下载数据并创建一个 sqlite 数据库文件
  2. Test 是使用下载的 sqlite 数据库的主要 windows 应用程序。
  3. TestLibrary 是测试项目引用的 class 库。

我知道如何使用构建菜单中的 Configuration Manager 重新排序这三个项目的构建。但是 主要问题是: 如何自定义解决方案的构建过程,以便:

因此,每次构建新版本时,我都会获得应用程序所需的最新数据。

感谢您的帮助

您需要自定义 MSBuild 项目文件(即 .csproj 文件)。

例如,在您的 DownloadDatabase 项目中,在 XML 文件底部的 <project> 元素内添加:

<Target AfterTargets="AfterBuild">
    <Exec Command="$(ProjectDir)$(OutputPath)$(AssemblyName).$(OutputType)" />
    <Copy SourceFiles="$(ProjectDir)$(OutputPath)file.db" DestinationFolder="$(SolutionDir)Test" />
</Target>

也许有一些错误,但归根结底,您需要使用 MSBuild 任务来执行这些操作。

请参阅 Exec and Copy MSBuild 任务文档页面以获取更多详细信息。