我今天尝试过很多东西让我的构建在Teamcity中工作,但无济于事。
这是我的设置。
我在TeamCity中有2个构建配置
Build Solution
Build Deployment Package Debug
Build Solution
由SVN签入触发并构建解决方案文件。这种配置工作正常。
Build Deployment Package Debug
具有Build Solution
作为其依赖项,并具有两个(MSBuild)构建步骤。该解决方案包含两个网站:前端网站和管理网站。一个构建步骤构建前端站点,另一个构建管理站点。最终结果是它将组合结果放入一个zip文件中以便部署到部署服务器(我还没有达到这个目的)。
我遇到的问题是Build Deployment Package Debug
配置无法尝试构建第一个站点。这是错误:
[18:40:25]Step 1/2: Web (MSBuild) (29s)
[18:40:28][Step 1/2] x.Web\x.Web.csproj.teamcity: Build target: Build (27s)
[18:40:50][x.Web\x.Web.csproj.teamcity] MvcBuildViews (4s)
[18:40:50][MvcBuildViews] AspNetCompiler (4s)
[18:40:55][AspNetCompiler] C:\BuildAgent\work\252ec59002ecc2d\x.Web\obj\debug\csautoparameterize\original\web.config(39, 0): error ASPCONFIG: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
[18:40:55][x.Web\x.Web.csproj.teamcity] Project x.Web\x.Web.csproj.teamcity failed.
[18:40:55][Step 1/2] Step Web (MSBuild) failed
这是Build Paramters - >系统属性
Name Value
system._PackageTempDir c:\deploypackage
system.Configuration Debug
system.CreatePackageOnPublish True
system.DeployIisAppPath Debug
system.DeployOnBuild True
system.PackageLocation c:\buildshares\Debug\Debug.zip
答案 0 :(得分:19)
以下是我为解决这个问题所做的工作
我的项目文件中已经有了这个
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
但我还要加上这个
<Target Name="AfterBuild">
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>
这样做解决了这个问题。
我希望这可以帮助将来在TeamCity工作的其他人。