如何在一个MSBuild的WebProjectOutputDir空间?(How do I have

2019-07-29 08:43发布

我想从命令行调用的MSBuild。 一切工作正常,当我使用没有空格的路径,但现在我有了空格的路径,命令失败。

命令(工作):

"C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe" 
/t:Rebuild "C:\Projects\myProject.csproj" 
/p:OutDir=c:\temp\deploy\funAndGames\Deployment\bin\ 
/p:WebProjectOutputDir=c:\temp\deploy\funAndGames\Deployment\ 
/p:Configuration=Release

然后我加引号,改变OUTDIR到outpath中(不工作):

"C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe" 
/t:Rebuild "C:\Projects\myProject.csproj" 
/p:OutPath="c:\temp\deploy\funAndGames\Deployment\bin\" 
/p:WebProjectOutputDir="c:\temp\deploy\funAndGames\Deployment\" 
/p:Configuration=Release

我所瞄准的是这样的(不工作):

"C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe" 
/t:Rebuild "C:\Projects\myProject.csproj" 
/p:OutPath="c:\temp\deploy\fun and games\Deployment\bin\" 
/p:WebProjectOutputDir="c:\temp\deploy\fun and games\Deployment\" 
/p:Configuration=Release

围绕OUTDIR / outpath中和WebProjectOutputDir语法带有空格的任何帮助吗? 可能吗? 如果不是没有人知道是什么原因(由于一些网址没有空间式的东西?)

Answer 1:

刚刚发现这一点回答这个老问题。 要处理的空间,你应该使用转义字符\上的所有文件夹。 基本上

/p:OutPath="c:\temp\deploy\fun and games\Deployment\bin\"

应该

/p:OutPath="c:\\temp\\deploy\\fun and games\\Deployment\\bin\\"

而神奇的工作!



Answer 2:

尝试添加" 例如:

/p:OutPath=""c:\temp\deploy\fun and games\Deployment\bin\""


Answer 3:

MSBUILD也似乎如果切换\到/,而使用引号与在OUTDIR空间工作:

/p:OutDir="c:/temp/deploy/fun and games/out/"
/p:WebProjectOutputDir="c:/temp/deploy/fun and games/Deployment/"


Answer 4:

> "C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe"
> /t:Rebuild
> "C:\Projects\myProject.csproj" 
/p:OutPath="c:\temp\deploy\funAndGames\Deployment\bin\"
----------------------------------------
/p:WebProjectOutputDir="c:\temp\deploy\fun and games\Deployment\"
----------------------------------------

> /p:Configuration=Release

试试这个。

通过VSStudio GUI也可以尝试。 然后复制的设置和使用MS尝试建立。



Answer 5:

对我来说,工作的解决方案是:

/ P:SQLCMD = “\” C:\ Program Files文件\ Microsoft SQL Server的\ 100个\工具\ BINN \ SQLCMD.EXE \ “”

换句话说:把所有的串入引号(外部引号不是值传递到MSBuild的)。

该物业内的MSBuild值是: “C:\ Program Files文件\ Microsoft SQL Server的\ 100个\工具\ BINN \ SQLCMD.EXE”(带引号)。



Answer 6:

如果你有一个开关多个参数,你不能真正通过固定的路径“避免”的问题。 你可以做的是把你的交换机的参数“some_parameters1 some_parameters2”之间。

就像是:

<Exec Command="SomeCommand /useMultipleParameterSwitch=&quot;value1:blabla1 | value2:blabla2&quot;"/>

当然,在很大程度上取决于开关的语法但对我的作品和我的团队。



Answer 7:

要使用时,.proj文件,你的路径包括在像$(DeployFolder)和$(NuGetExe)的属性,你可以用做“&QUOT;” 像这样:

<Exec Command="&quot;$(NuGetExe)&quot; pack -OutputDirectory &quot;$(DeployFolder)&quot;" />


文章来源: How do I have spaces in a MSBuild WebProjectOutputDir?