我正在尝试将我们的构建从运行自定义 .msbuild 文件的 CruiseControl.NET 切换到 Team Build 2010。正在编译的应用程序是一个包含大量项目的 VS2008 解决方案,其中两个是 Web 项目。
使用 DefaultTemplate.xaml,这两个 Web 项目似乎部署到Binaries\_PublishedWebsites\(ProjectName)
. 该默认位置很好。但是,输出目录的内容似乎是可更新的,好像aspnet_compiler.exe
是用 调用的-u
,或者好像一个 MSBuild<AspNetCompiler>
任务是用 的Updateable="true"
。所以,两个问题:
- 如何使 Team Build 向
_PublishedWebsites
目录生成不可更新的输出? 我如何还设置 IIS VirtualPath,就好像我在 MSBuild 任务中执行以下操作一样:
<AspNetCompiler Clean="true" Force="true" VirtualPath="/My-IIS-Virtual-Path" />
我在之前的故障排除中发现,让 IIS 6 为aspnet_compiler.exe
在不可更新模式下编译的 Web 服务提供服务的唯一方法是在命令中指定虚拟路径,这就是我询问 #2 的原因。
编辑:
到目前为止看到一个答案后,我意识到我应该更清楚问题是什么。我意识到,如果我可以在 MSBuild 中做某事,我可以从构建模板中调用 MSBuild。但是,我想知道更多关于如何更改将输出复制到_PublishedWebsites
目录的内容。“找到复制网站并更改它的任务”会很好用,除了我看不到实际将输出复制到_PublishedWebsites
. 我真正想做的是修改模板中完成此操作的步骤。
构建日志引用了一个名为的编译目标_CopyWebApplication
,该目标似乎完成了复制 Web 应用程序所需文件的工作。但是,我不确定如何修改这个编译目标,因为我在构建模板的任何地方都没有看到它,也没有在解决方案的任何文件中看到它。此外,无论运行什么_CopyWebApplication
似乎都只为 Web 应用程序项目运行,而不是解决方案中的许多其他项目。这是一件好事,只是我不知道决定是否使用的逻辑存在于哪里_CopyWebApplication
。
也许我缺少一些默认的 MSBuild 文件?我可以使用的一些构建参数?如何更改上述构建步骤?