2013-01-17 40 views
2

我有一個控制檯程序,輸出其exe文件& dll到指定的目錄。XCopy在構建期間失敗,但不是從命令行?

作爲後期構建事件,我試圖將該目錄中的所有內容複製到另一個目錄。

我的xcopy命令從命令提示符工作,但在VS2010失敗?怎麼會這樣?

我正在通過轉到項目文件夾並在命令提示符下執行以下命令來測試它。 (這是從VS2010輸出)

在我生成後事件:

xcopy "$(OutDir)*.*" "$(TargetDir)..\..\Foo\Bar\" /s /y /i 

從命令提示符下,我執行其工作原理如下。

xcopy "..\..\..\..\MyDir\baz\zip\*.*" "c:\1\2\3\MyDir\baz\zip\..\..\Foo\Bar\" /s /y /i 

對不起,目錄名稱。

最終結果應該是兩個目錄具有相同的文件在其中:

c:\1\2\3\MyDir\baz\zip 
c:\1\2\3\MyDir\foo\bar 

的目標路徑是相對於輸出目錄。

當其作爲構建的一部分執行它提供了一個退出代碼發生4

初始化錯誤。沒有足夠的內存或磁盤空間,或者在 命令行上輸入了無效的驅動器名稱或無效的語法。

我哪裏錯了?

+0

你可能用一個'xcopy.bat'來代替'xcopy.',它會記錄參數和結果,看看 –

+1

出於好奇怎麼回事,如果你用絕對路徑替換相對路徑,它是否工作? –

回答

0

爲什麼不調用批處理文件,它將運行xcopy以將所需文件源運行到目的地?

call "$(SolutionDir)scripts\copyifnewer.bat" 

隨着copyifnewer.bat看起來像這樣:

IF NOT EXIST <destination> md <destination> 
XCOPY /Y <file> <destination> 
2

明白了,

我在後生成事件改變了xcopy命令:

xcopy "$(TargetDir)*.*" "$(TargetDir)..\..\Foo\Bar\" /s /y /i 

的執行結果爲:

xcopy "c:\1\2\3\MyDir\baz\zip\*.*" "c:\1\2\3\MyDir\baz\zip\..\..\Foo\Bar\" /s /y /i 

哪個VS2010更受歡迎,我猜你不能使用沒有基路徑的相對路徑。

相關問題