当使用MSBuild构建ASP.NET项目时,我如何复制项目的内容?

18 浏览
0 Comments

当使用MSBuild构建ASP.NET项目时,我如何复制项目的内容?

我正在编写一些新的构建脚本,用于我们几个应用程序。当前的脚本使用MSBuild在原地构建所有项目,然后手动将所有内容(视图、脚本等)和bin文件夹手动复制到一个打包文件夹中;这要求将ASP.NET项目的bin目录之外的所有文件和文件夹都显式列在一个配置文件中,这显然容易出错。

在使用MSBuild指定输出目录时,是否有一种方式可以同时包含内容文件?理想情况下,这不需要创建发布配置文件,因为当前的部署方法不可更改,所以我需要确保我的构建产物与当前的一致。

如果有帮助的话,我打算使用Cake作为构建机制。

0
0 Comments

在使用cake构建ASP.NET项目时,我遇到了如何复制项目内容的问题。我通过以下方式解决了这个问题:

首先,我创建了一个排除文件列表,其中包含不需要复制的文件,例如"Settings.settings"和"packages.config"。

然后,我指定了生成的目标文件夹路径artifactDir和解决方案文件路径solutionFile。

接着,我定义了一个名为"Package"的任务,该任务依赖于"Build"任务,并执行以下操作:

- 解析解决方案文件,获取所有项目。

- 循环遍历每个项目,解析项目文件并获取bin目录路径。

- 如果项目名称包含"Host",则创建一个名为"SOA"的文件夹,并将bin目录下的内容复制到"SOA/bin"目录。

- 遍历项目文件,如果文件未标记为编译,并且不在排除文件列表中,则将文件复制到"SOA"文件夹中的相对路径。

最后,我可以使用生成的文件相对路径将文件复制到artifact目录中。

我有一个cake脚本,将一些文件从其他目录复制到项目的bin目录中。然后,cake调用执行MSBuild的任务。但是我发现生成的包中并没有包含这些文件。我想知道是不是MSBuild清理了bin目录?如何解决这个问题?有什么建议吗?

0