&引用;“路径中的非法字符”;使用web作业编译和打包azure web app时出错

&引用;“路径中的非法字符”;使用web作业编译和打包azure web app时出错,azure,msbuild,web-deployment,Azure,Msbuild,Web Deployment,我有一个web应用程序“WebApplication2”(Azure API)和一个web作业“WebJob1”。我想将应用程序和web作业打包到一个zip文件中,以便将包部署到云中。当我通过visualstudio(Publish->webdeploypackage)完成这项工作时,它就像一个魔咒。但是,当我试图通过MSBuild(出于自动化目的)执行此操作时,会出现以下错误: 命令: C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild.exe

我有一个web应用程序“WebApplication2”(Azure API)和一个web作业“WebJob1”。我想将应用程序和web作业打包到一个zip文件中,以便将包部署到云中。当我通过visualstudio(Publish->webdeploypackage)完成这项工作时,它就像一个魔咒。但是,当我试图通过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)生成引擎版本14.0.25420.1

不确定用于编写自动化脚本的是什么,但我在web作业中使用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脚本,但希望这可以引导您朝着正确的方向前进。

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

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

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

可能会有帮助。

是否尝试将源代码移动到直接文件夹位置,例如“D:\src”windows存在此字符数问题。事实并非如此。但您可以尝试一下。在命令中的
MSBuildOutputPath
之后添加一个尾随斜杠,因为msbuild未解释
MSBuildOutputPath**
。它必须是
MSBuildOutputPath\**
已尝试了这两个建议,但未成功