【问题标题】:"Illegal characters in path" error in compiling and packaging azure web app with web job使用 Web 作业编译和打包 azure Web 应用程序时出现“路径中的非法字符”错误
【发布时间】:2017-05-24 06:32:26
【问题描述】:

我有一个带有 Web 作业“WebJob1”的 Web 应用程序“WebApplication2”(Azure API)。我想将应用程序与 Web 作业一起打包到一个 zip 文件中,以便将包部署到云中。当我通过visual studio(发布-> web 部署包)执行此操作时,它就像一个魅力。但是,当我尝试通过 MSBuild(出于自动化目的)执行此操作时,出现此错误: 命令:

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild.exe "C:\Users\levs\Documents\Visual Studio 2015\Projects\WebApplication2\WebApplication2\WebApplication2.csproj" /p:OutputPath="C:\Users\levs\Documents\webPublish\MSBuildOutputPath" /p:DeployOnBuild=true /p:PackageLocation=C:\Users\levs\Documents\webPublish\test.zip /verbosity:m

输出:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(2606,5): error : Copying file C:\Users\levs\Documents\webPublish\MSBuildOutputPath**\*.* to obj\Debug\Package \PackageTmp\app_data\jobs\continuous\WebJob1\*.* failed. Illegal characters in path. [C:\Users\levs\Documents\Visual Studio 2015\Projects\WebApplication2\WebApplication2\WebApplication2.csproj]

你知道我做错了什么吗?

顺便说一句,使用 MSBuild 分别编译每个项目(应用程序和 webjob)是有效的。

MSBuild 版本:Microsoft (R) Build Engine 版本 14.0.25420.1

【问题讨论】:

  • 您是否尝试将您的源代码移动到直接文件夹位置,例如“D:\src”窗口有这个字符数问题。这不完全是。不过你可以试试看。
  • 在您的命令中在MSBuildOutputPath 之后添加一个斜杠,因为MSBuildOutputPath** 被msbuild 错误解释。必须是MSBuildOutputPath\**
  • 两个建议都试过了,都没有成功

标签: azure msbuild web-deployment


【解决方案1】:

不确定您使用什么来编写自动化脚本,但我在使用 Cake 中的 MSBuild 和我的网络作业时遇到了类似的问题。希望这可以帮助遇到同样问题的其他人。

我在复制过程中的原始路径是这样的:

Copying C:\Test\Portal.WebApp\build\Package**\*.* to obj\Release\Package\PackageTmp\app_data\jobs\triggered\PortalWebJob\*.*

我认为问题出在这部分。

Package**\*.*

为了解决这个问题,我在 OutputPath 的末尾添加了斜杠。

settings.WithProperty("OutputPath", MakeAbsolute(packageDir).ToString() + "/");

这似乎解决了我的问题,我知道您可能没有使用 Cake 脚本,但希望这可以引导您朝着正确的方向前进。

【讨论】:

    【解决方案2】:

    我通过查找失败的 MSBuildOutputPath 值、复制它、添加尾部斜杠,然后将该新字符串指定为 OutputPath 参数来解决此问题。

    因此,如果出现该错误的输出是“C:/myDesiredOutputPath/bin”,我需要指定 MSBuild 应该使用带有斜杠的“C:/myDesiredOutputPath/bin/”。

    msbuild /p:OutputPath=C:/myDesiredOutputPath/bin/
    

    This answer 可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多