我一直在为我们拥有的网站编写构建脚本。该网站是一个经典的 asp web 应用程序,在经典的 asp web 应用程序的文件夹中包含一个 asp.net 网站。
我们有不同版本的 global.asa 需要替换,而不是不同的 Web 配置。我们正在迁移到持续集成环境中,其中很多内容对我来说仍然是新事物。我编写了一个执行以下任务的构建脚本。
- 如果 buildartifacts 目录存在,则清理它。
- 使用传入的任何配置构建解决方案文件。这会在单独的文件夹中生成每个项目的输出。
- 将文件复制到所需的文件夹结构中。
- 使用 MSDeploy 将结果打包为同步。
我的第一个问题是这个...
当我像这样运行 MSBuild 任务时......
<MSBuild Projects="$(SolutionFileName)"
Properties="Configuration=$(Configuration);OutDir=%(BuildArtifacts.FullPath)" />
它构建 Web 应用程序,但不应用任何转换。我会假设 MSBuild 会自动应用转换。相反,我最终在包含构建的输出文件夹中获得了所有 3 个配置文件。为什么是这样?我在这里做了一些搜索,在这里,他们正在使用单独的任务来执行转换。如果 Visual Studio 可以应用转换并且 Visual Studio 使用 MSBuild 我认为 MSBuild 可以应用转换?不知道 MSBuild 配置吗?另外,如果我必须单独执行,如果文件夹结构的每个级别的多个文件夹中有多个配置文件,我是否可以一次执行所有转换。
我的第二个问题是......作为一个经典的 asp web 应用程序,我们不能真正为这部分使用配置文件,因为......我不确定经典的 asp web 应用程序如何访问配置文件?所以我们有不同版本的 global.asa 文件,通常会被手动替换。我想我可以进行某种搜索/复制我们当时需要的特定 asa 文件,但是有没有办法使用转换来完成这项任务?