簡體   English   中英

從包含空格的文件夾進行Web部署

[英]web deploy from a folder with spaces

我有一個非常簡單的場景,ASP.NET MVC4網站。 我使用VS2012的Publish功能生成Web部署包。 這會生成一堆文件,一個.zip,一些.xml和一個xxx.deploy.cmd文件。

我像往常一樣使用以下命令運行deploy.cmd文件:

MVCTestApp.deploy.cmd /Y -enableRule:DoNotDeleteRule

從包含空格的程序文件的子文件夾(例如C:\\ Program Files(x86)\\ Folder With Spaces \\ TestApp)運行時,此命令失敗並顯示錯誤

\\文件夾此時出乎意料。

問題顯然在於處理_DeploySetParametersFile參數,但我不能只修復.cmd文件,因為它是在每次發布時生成的。

有人有解決方法嗎?

對我來說,這個問題與下面的鏈接有關(我試圖讓它在jenkins中運行):

https://issues.jenkins-ci.org/browse/JENKINS-11992?focusedCommentId=201790#comment-201790

我通過使用縮短版本的目錄解決了這個問題。 您可以通過鍵入dir / x找出它們的內容。

我的構建命令最終看起來像這樣:

MSBuild c:\PROGRA~2\Jenkins\jobs\REPVIE~1\workspace\Builder\RepView\RepView.csproj /p:DeployOnBuild=true /p:PublishProfile=JenkinsDeployment

我的部署命令最終看起來像這樣:

c:\PROGRA~2\Jenkins\jobs\REPVIE~1\workspace\Builder\RepView\obj\Debug\Package\RepView.deploy.cmd /y /M:http://<target-address> /u:<username> /p:<password>

因為生成deploy.cmd文件,所以在調用MSBuild時使用目錄的縮寫名稱可以解決此問題。 只是不要使用任何帶空格的路徑,它應該適合你。

在調用.cmd之前,您可能需要設置_DeploySetParametersFile參數的值,如果這是導致問題的原因。 創建另一個靜態批處理文件,您將使用它來執行此操作。

首先,使用轉義空格設置參數的值,然后從其位置調用cmd。 每次需要部署應用程序時都使用此批處理文件。 全部內容:

@if %_echo%!==! echo off
setlocal
set _DeploySetParametersFile=C:\Program^ Files^ (x86)\Folder^ With^ Spaces\TestApp\xxx.SetParameters.xml
"C:\Program Files (x86)\Folder With Spaces\TestApp\xxx.Deploy.cmd"

調用類似mydeploy.cmd的文件並mydeploy.cmd調用它,以便您可以回復任何錯誤,而不是立即關閉窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM