我试图从运行自定义.msbuild文件的CruiseControl.NET切换到Team Build 2010来构建应用程序,这个应用程序是一个VS2008解决方案,其中包含多个项目,其中两个是Web项目。
使用DefaultTemplate.xaml,似乎这两个Web项目被部署到了
编辑:看到迄今为止的唯一答案后,我意识到我应该更清楚地说明问题。我知道如果我可以在MSBuild中做一些事情,我可以从构建模板中调用MSBuild。但是,我想知道更多关于如何更改将输出复制到
构建日志引用了一个名为
也许有一些默认的MSBuild文件我错过了吗?我可以使用某些构建参数吗?如何修改上述构建步骤?
使用DefaultTemplate.xaml,似乎这两个Web项目被部署到了
Binaries\_PublishedWebsites\(ProjectName)
。这个默认位置很好。然而,输出目录的内容似乎可以更新,就像使用了-u
调用了aspnet_compiler.exe
一样,或者就像使用了<AspNetCompiler>
任务,并设置Updateable="true"
一样。所以,有两个问题:
- How do I make Team Build produce non-updateable output to the
_PublishedWebsites
directory? How can I also set the IIS VirtualPath as if I was doing the following in an MSBuild task:
<AspNetCompiler Clean="true" Force="true" VirtualPath="/My-IIS-Virtual-Path" />
aspnet_compiler.exe
编译的Web服务,这就是为什么我问问题#2的原因。编辑:看到迄今为止的唯一答案后,我意识到我应该更清楚地说明问题。我知道如果我可以在MSBuild中做一些事情,我可以从构建模板中调用MSBuild。但是,我想知道更多关于如何更改将输出复制到
_PublishedWebsites
目录的内容。 "查找复制网站的任务并更改它"会很好用,但是我没有看到实际上将输出复制到_PublishedWebsites
中的内容。我真正想做的是修改模板中完成此操作的步骤。构建日志引用了一个名为
_CopyWebApplication
的编译目标,它似乎完成了复制Web应用程序所需文件的工作。但是,我不确定如何修改此编译目标,因为我在构建模板中或解决方案中的任何文件中都没有看到它。此外,无论运行_CopyWebApplication
的是什么,它似乎仅针对Web应用程序项目运行,而不是解决方案中的许多其他项目。这是一件好事,但我不知道确定是否使用_CopyWebApplication
的逻辑存在于何处。也许有一些默认的MSBuild文件我错过了吗?我可以使用某些构建参数吗?如何修改上述构建步骤?
/p:Disable_CopyWebApplication = True
作为MSBuild参数就可以解决问题,但是到目前为止,无论我尝试在哪里设置参数,它都没有停止_CopyWebApplication
目标。 停止它可能是可以接受的,因为这样做后,简单地添加一个MSBuild步骤以进行AspNetCompile会更容易一些。 - AndrewDisable_CopyWebApplication=True
禁止发布 Web 应用程序。您确定看到的二进制文件不是来自上一次运行吗?同时尝试传递IsDesktopBuild=True
。 - KMoraz<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
。请确保它在客户端和构建服务器上都存在。或者也可以更新服务器端。这篇文章可能会有所帮助。 - KMoraz