我使用的MSBuild打包并发布我的Asp.Net MVC 3,.NET 4的应用。 我已经深谙此道的MVC 1.0,NET 3.5的应用程序。
每当我包括IIS设置( IncludeIisSettings=true
)在我的.proj文件,我得到下面的生成错误:
C:\ Program Files文件(x86)的\的MSBuild \微软\ VisualStudio的\ V10.0 \网络\ Microsoft.Web.Publishing.targets(2046,5):错误MSB4044:在 “EscapeTextForRegularExpressions” 任务不是必需的给定值参数“文本”。
我有我的生成服务器上同样的问题。
该计划将完全建立自己的计算机上,但会失败,你有我的生成服务器上完全一样的错误。 对我来说,这个问题是由我建立的机器上,该应用不与IIS注册的事实引起的。
当我在项目和能够使一些间接的方式启用本地测试在IIS快递问题开始IncludeIisSettings=true
设置,您提到。 这使得网络部署流水线查询IIS的网站的详细信息。 由于构建服务器没有IIS 7或IIS快递安装了它无法获得这些设置。 这最终导致上述错误,因为传递给参数EscapeTextForRegularExpressions
任务是空的。
我的解决办法是设置IncludeIisSettings
到False
的应用.wpp.targets文件(见这里的一个例子.wpp.targets文件)。 如果您为IIS指定的设置明确的,这不应该是一个问题。
我也可以通过注册使用WebMatrix中IIS Express中的网站来解决构建。 在Visual Studio中运行该网站应该有同样的效果。
我的问题是与权限,特别是UAC设置在Windows 7笔记本电脑转换后。
对我以前的配置仔细检查后,我意识到我仍然有默认的UAC设置。 要改变去Start > Control Panel > User Accounts > User Accounts > Change User Account Control Settings
。 然后拖动滑块一路下跌到Never notify
。
下面是我观察到这可能是有帮助的一些其他症状:
当我跑的MSBuild本地IncludeIisSettings=true
我收到了同样的错误作为的问题。
一些挫折和弯路之后,我无法弄清楚,为什么我虽然是管理员我正在相关领域的权限错误,例如设定当IncludeIisSettings=false
,然后尝试运行,我收到一个权限错误的部署文件。
因此,我决定探究的UAC设置,并找到解决方案。
该解决方案,我们发现有IncludeIisSettings =真实,有succefull建立与出“的‘EscapeTextForRegularExpressions’任务没有给出所需的参数值‘文本’。” 错误是:
- 在构建服务器上安装Visual Studio(已完成)。
- 在构建服务器上安装IIS。
- 在IIS,在默认网站,添加一个用于HTTPS绑定(端口443),并使用由Visual Studio(IIS Express开发证书)安装证书。
我不得不改变在属性如下\ Web应用程序的网站
在Servers部分从IISExpress切换到本地IIS,并创建我的vitural目录。 当然,你自然必须有在计算机上安装IIS。