Msbuild 使用csproj文件发布网站

Msbuild 使用csproj文件发布网站,msbuild,Msbuild,[UPDATE]修复了StackOverflow允许我以后再回答的问题,但基本上我安装了Web部署项目,这是VS2010的免费插件。然后,在我的Web项目中,右键单击并添加“添加新的Web部署项目”。当它在output文件夹中构建时,它会转储一个完整版本的可部署webapp DLL、视图、控制器、图像等。然后,您可以开始巧妙地进行配置设置,为生产、测试、开发等进行单独的配置。基本上,我遵循了本文中的说明 ---我原来的帖子----- 我有一个web MVC3项目和许多其他项目的解决方案。我正在使

[UPDATE]修复了StackOverflow允许我以后再回答的问题,但基本上我安装了Web部署项目,这是VS2010的免费插件。然后,在我的Web项目中,右键单击并添加“添加新的Web部署项目”。当它在output文件夹中构建时,它会转储一个完整版本的可部署webapp DLL、视图、控制器、图像等。然后,您可以开始巧妙地进行配置设置,为生产、测试、开发等进行单独的配置。基本上,我遵循了本文中的说明

---我原来的帖子-----

我有一个web MVC3项目和许多其他项目的解决方案。我正在使用TeamCity通过指向sln文件而不是构建脚本来构建我的解决方案

在每次构建结束时,我希望剩下两个工件,即:一个用于测试环境的网站版本和一个用于生产环境的版本

我了解如何制作build configurations web.config,但我很难理解我需要对我的csproj文件执行什么操作—使用默认构建脚本将这些不同版本的网站发布到构建服务器上的文件夹中,而不是服务器/联机文件夹中

我想我需要给这本书加些东西

  <Target Name="AfterBuild">  
     (something goes here)
  </Target> 
…我的csproj文件的一部分可能是web项目中的一部分,但尽管进行了大量搜索,我还是无法获得正确的语法。我想我需要像这样的东西

<MSBuild Target="Publish" ...>
…但我对这一切都感到困惑


如果有人能给我指出正确的方向,我将不胜感激。

查看我的更新,我最终使用了Web部署项目,除了Web.config替换中的一个非常恼人的问题外,它工作得很好。

事实上,尽管我可以使用替换功能替换“appSettings”等值,但我的Web.config中还有一个名为“spring”的配置部分,它似乎不允许我替换它,可能是因为它是一个用户定义的配置部分。有什么想法吗?