nuget pack路径中的非法字符

Lew*_*wis 15 msbuild nuget

我正在使用Cruise Control打包应用程序,命令是这样的

<Exec Command="$(NugetToolPath) pack &quot;@(NuSpecs)&quot; -OutputDirectory \\servername\PackageSource -BasePath &quot;%(NuSpecs.RootDir)%(NuSpecs.Directory)&quot; -NoPackageAnalysis" />
Run Code Online (Sandbox Code Playgroud)

我把这个错误缩小为它出来的BasePath

-BasePath "D:\Code\Mobile_Trunk\PreCompiledWeb\Portal\Mobile LT Admin\"
Run Code Online (Sandbox Code Playgroud)

我知道这个问题,因为它应该是

-BasePath "D:\Code\Mobile_Trunk\PreCompiledWeb\Portal\Mobile LT Admin"
Run Code Online (Sandbox Code Playgroud)

但是因为我正在使用.Directory元数据,它总是会返回一个\结尾

我通常不会引用基本路径,但由于目录中有空格,我别无选择.有没有解决的办法?我不知道任何其他元数据将返回完整的文件夹结构,而不是我如何将其布局

更新:

我来到这个解决方案,它仍然没有帮助我知道如何解决非法路径的问题,但它的工作原理.

<Exec Command="$(NugetToolPath) pack &quot;%(NuSpecs.RootDir)%(NuSpecs.Directory)%(Nuspecs.FileName).nuspec&quot; -OutputDirectory \\servername\PackageSource  -NoPackageAnalysis" />
Run Code Online (Sandbox Code Playgroud)

Bri*_*acy 19

只需在目录后面和引号字符前插入一个空格:

-OutputDirectory "\\servername\PackageSource\ " 
Run Code Online (Sandbox Code Playgroud)

请参阅此处接受的答案(问题本身并不高度相关,但答案是:):

如何接受以反斜杠结尾的命令行参数

这个引人入胜的参考文献也与该问题的另一个答案有关:http:
//www.daviddeley.com/autohotkey/parameters/parameters.htm#WINCRULESDOC