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