使用MSbuild自动预编译网站的问题

时间:2008-11-21 14:28:48

标签: msbuild teamcity

全部,

我目前的解决方案包括2个类库和使用Msbuild在teamCity中的Web站点构建。现在我想预编译网站并将其作为工件提供。但是当我尝试使用

进行预编译时
<Target Name="PrecompileWeb" DependsOnTargets="Build">
    <AspNetCompiler
        PhysicalPath="$(BuildDir)\Location\" 
        TargetPath="$(BuildDir)\Publish"
        Force="true"
        Debug="true"

        />
  </Target>

我得到一个错误,因为它正在寻找一个虚拟路径(我没有,因为我只想预先编译我不感兴趣发布网站的文件)如果我在我得到一个虚拟路径关于它不是IIS下的应用程序的另一个错误(正确)

任何想法

2 个答案:

答案 0 :(得分:2)

这是一个网站还是Web应用程序项目?如果后者不是执行AspNetCompiler任务,而是对csproj / vbproj文件执行MSBuild任务,调用目标Rebuild;ResolveReferences;_CopyWebApplication并指定OutDir属性。

如果您使用的是网站,请将VirtualPath指定为有效的IIS路径。发生的事情是,当您未指定VirtualPath属性时,它会尝试使用PhysicalPath和IIS解析它。我相信这只是AspNetCompiler工作原理的一个神器。

答案 1 :(得分:0)

我不确定这会有效,因为每次构建都会发生这种情况吗?我只想在TeamCity Server上运行构建而不是本地构建时才这样做。

基本上我目前

构建所有必需的解决方案 执行单元测试 为工件

创建Zip文件夹

干杯