2

Visual Studio 2008 Web 部署项目团队构建 ASPPARSE 错误

我似乎有一个共同的问题;一个正在出现但没有明确解决方案的人。

我有一个 Visual Studio 2008 项目结构,其中包含几个项目,它们是类库、一个 Web 应用程序项目和一个最近添加的 Web 部署项目。我听说过 MVC 设置的这个问题。此外,我看到的解决方案假设正在使用 MVC。

我已经验证了构建在 IDE 中可以正常工作。除了由于单个程序集合并而生成的程序集的名称之外,我没有更改 Web 部署项目的默认设置。

我已将我的解决方案设置为仅在为“发布”构建解决方案时构建 Web 部署项目。我有一个自定义构建脚本,它可以抓取这个代码分支和一个开发代码分支。构建脚本正确构建了此代码的发布版本和开发分支的调试版本。

构建发布版本时出现问题。除 Web 部署项目外,所有项目均已成功构建。构建此项目时出现 TFS 构建错误,并出现以下错误:

/xx.csproj/global.asax(1): error ASPPARSE: Could not load type 'xxx.xx.Global'.

xx.csproj 是 Web 应用程序项目,“xxx.xx.Global”是类后面的 Global.asax 代码。

从我的阅读看来,TFS Build 可能存在一些复制问题。我在这里阅读了一些关于 MVC 的回复。这不是 MVC 设置,但我相信这是一个类似的问题。我不确定任何复制代码应该去哪里。我尝试在我的 AfterBuild 目标中的 TFSBuild.proj 文件中放置一些建议的代码,但发现代码并没有改变这个错误。

<!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.WebDeployment.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="BeforeMerge">
  </Target>
  <Target Name="AfterMerge">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->

上面的代码出现在被注释掉的项目文件中。我的想法是“BeforeMerge”目标可以让我复制那些需要的二进制文件。我不知道如何编写任何脚本来做到这一点。我查阅了几本 TFS 书籍,但都没有包含有关 Web 部署项目的信息。(令我懊恼的是,我似乎也无法从微软那里找到关于这个问题的太多信息)。

看到我只看到了引用 MVC 解决方案的解决方案,我应该说我已经研究过在 AfterBuild 目标中做一些事情。上面的构建脚本直接来自我在 TSBuild 脚本中尝试过的 deploy_csproj。尝试在任一位置复制二进制文件有区别吗?

谁能解释发生了什么?我是否必须为每个项目编写单独的构建脚本,以便他们将二进制文件复制到正确的目录以进行合并执行?

4

1 回答 1

0

我认为您遇到了一个已知问题,该问题的中心是 TFS TeamBuild 将编译输出重定向到单个文件夹(而不是每个项目下的 bin\Release)。

我会在 Aaron Hallberg 的博客上向您指出这篇文章的方向,该博客解释了这个问题以及如何解决它:

http://blogs.msdn.com/aaronhallberg/archive/2007/07/02/team-build-and-web-deployment-projects.aspx

于 2010-02-26T17:59:44.913 回答