运行 构建过程中的 C# 控制台应用程序
Run a c# console application in build process
假设我们有一个包含三个项目的解决方案:
DownloadDataBase
是一个控制台应用程序,它从 Web 下载数据并创建一个 sqlite
数据库文件
Test
是使用下载的 sqlite
数据库的主要 windows 应用程序。
TestLibrary
是测试项目引用的 class 库。
我知道如何使用构建菜单中的 Configuration Manager
重新排序这三个项目的构建。但是 主要问题是: 如何自定义解决方案的构建过程,以便:
- 它首先构建
DownloadDataBase
- 然后执行这个控制台应用程序
DownloadDataBase
- 之后将上一步创建的
sqlite
文件复制到Test
项目的资源目录
- 最后使用更新的
sqlite
文件构建 Test
项目?
因此,每次构建新版本时,我都会获得应用程序所需的最新数据。
感谢您的帮助
您需要自定义 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 任务来执行这些操作。
假设我们有一个包含三个项目的解决方案:
DownloadDataBase
是一个控制台应用程序,它从 Web 下载数据并创建一个sqlite
数据库文件Test
是使用下载的sqlite
数据库的主要 windows 应用程序。TestLibrary
是测试项目引用的 class 库。
我知道如何使用构建菜单中的 Configuration Manager
重新排序这三个项目的构建。但是 主要问题是: 如何自定义解决方案的构建过程,以便:
- 它首先构建
DownloadDataBase
- 然后执行这个控制台应用程序
DownloadDataBase
- 之后将上一步创建的
sqlite
文件复制到Test
项目的资源目录 - 最后使用更新的
sqlite
文件构建Test
项目?
因此,每次构建新版本时,我都会获得应用程序所需的最新数据。
感谢您的帮助
您需要自定义 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 任务来执行这些操作。