MSBuild IIS问题

use*_*553 7 iis msbuild asp.net-mvc-3

我正在使用MSBuild来打包和发布我的Asp.Net MVC 3,.Net 4应用程序.我已经成功地为MVC 1.0,.Net 3.5应用程序做了这个.

每当我IncludeIisSettings=true在.proj文件中包含IIS Settings()时,我都会收到以下构建错误:

C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(2046,5):错误MSB4044:"EscapeTextForRegularExpressions"任务未获得所需的值参数"文本".

Mar*_*len 12

我的构建服务器上遇到了同样的问题.

该程序包将在我的开发计算机上完美构建,但会因为我在构建服务器上出现的完全相同的错误而失败.对我来说,问题是由于在我的构建机器上,应用程序未在IIS中注册.

当我在项目中的IIS Express中启用本地测试并以某种间接方式启用IncludeIisSettings=true您提到的设置时,问题就开始了.这会导致Web部署管道向IIS查询站点的详细信息.由于构建服务器未安装IIS 7或IIS Express,因此无法获取这些设置.这最终导致上述错误,因为传递给EscapeTextForRegularExpressions任务的参数为空.

我的解决办法是设置IncludeIisSettingsFalse在应用.wpp.targets文件(见这里的一个例子.wpp.targets文件).如果明确指定IIS的设置,那应该不是问题.

我还可以使用WebMatrix通过IIS Express注册站点来修复构建.在Visual Studio中运行该站点应具有相同的效果.