7

我正在使用 MSBuild 打包和发布我的 Asp.Net MVC 3、.Net 4 应用程序。我已经成功地为 MVC 1.0、.Net 3.5 应用程序完成了这项工作。

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

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(2046, 5): error MSB4044: The "EscapeTextForRegularExpressions" task is not given an value for the required参数“文本”。

4

4 回答 4

12

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

该软件包将在我的开发机器上完美构建,但会因与构建服务器上完全相同的错误而失败。对我来说,问题是由于在我的构建机器上,应用程序没有向 IIS 注册。

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

我的解决方案是在应用程序 .wpp.targets 文件中设置IncludeIisSettingsFalse参见此处获取示例 .wpp.targets 文件)。如果您明确指定 IIS 的设置,那应该不是问题。

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

于 2012-06-18T08:48:31.550 回答
1

我遇到的问题是权限问题,特别是切换笔记本电脑后 Windows 7 中的 UAC 设置。

在仔细检查了我之前的配置后,我意识到我仍然拥有默认的 UAC 设置。要改变去Start > Control Panel > User Accounts > User Accounts > Change User Account Control Settings。然后将栏一直拖到Never notify

以下是我观察到的一些其他症状,可能会有所帮助:

当我在本地运行 msbuild 时,IncludeIisSettings=true我收到了与问题中相同的错误。

在经历了一些挫折和错误的转折之后,我无法弄清楚为什么尽管我是管理员,但在相关领域却遇到了权限错误,例如,在设置IncludeIisSettings=false然后尝试运行部署文件时,我收到了权限错误。

因此,我决定探索 UAC 设置并找到解决方案。

于 2013-05-31T21:11:49.357 回答
0

我们发现的解决方案具有 IncludeIisSettings=true 并且没有“EscapeTextForRegularExpressions”任务没有为所需参数“Text”提供值的情况下成功构建。错误是:

  • 在构建服务器上安装 Visual Studio(已经完成)。
  • 在构建服务器上安装 IIS。
  • 在 IIS 中,在默认网站上,为 https(端口 443)添加绑定并使用 Visual Studio 安装的证书(IIS Express 开发证书)。
于 2017-03-17T10:18:38.740 回答
-1

我必须在 web 应用程序的 properties\Web 中更改以下内容

在服务器部分将其从 IISExpress 更改为本地 IIS 并创建我的虚拟目录。当然,您自然必须在您的机器上安装 IIS。

于 2018-04-25T17:39:02.997 回答