2010-09-07 163 views
1

我正在爲visual studio項目編寫後期構建事件。visual studio命令行文件目錄中的相對路徑

我:

java -jar "$(ProjectDir)..\Tools\closure_compiler.jar" 

但事實證明,被編譯後:

"D:\Projects\Source\Proj.Web\..\Tools\closure_compiler.jar" 

這是一個無效的目錄,它只是附加的點。我的問題是我想回去1個目錄。文件的絕對路徑是:

"D:\Projects\Source\Tools\closure_compiler.jar" 

完整的事件是:

java -jar "$(ProjectDir)..\Tools\closure_compiler.jar" --js "$(ProjectDir)Scripts\*.debug.js" --js_output_file "$(ProjectDir)Scripts\script-bundle.min.js" 

的錯誤是:

Error 24 The command "java -jar "D:\Projects\Xormis\trunk\Source\Xormis.Web\..\Tools\closure_compiler.jar" --js "D:\Projects\Xormis\trunk\Source\Xormis.Web\Scripts\*.debug.js" --js_output_file "D:\Projects\Xormis\trunk\Source\Xormis.Web\Scripts\script-bundle.min.js"" exited with code 1. Xormis.Web 

回答

2

這是一個可能的解決方法。你只需要將相對路徑轉換爲絕對路徑。如果Visual Studio可以使用命令擴展處理常規的命令提示符下的命令,這可能工作:

set ProjectDir=$(ProjectDir) 
java -jar "%ProjectDir:~0,-9%Tools\closure_compiler.jar" 

pushd $(ProjectDir) 
cd .. 
set ClosureCompiler=%CD%\Tools\closure_compiler.jar 
popd 
java -jar "%ClosureCompiler%" 

您可能需要調整這些滿足您的需求。

+0

@Shawn:在你決定刪除之前,我不確定你看到了我的回答。儘管visual studio可能不會直接支持相對路徑,但似乎沒有這樣的解決方法,正如我在此答案中所建議的那樣,可能會解決您的問題。請試一試。 – 2010-09-07 22:36:22

+0

我在看到你的答案之前刪除了,謝謝,我要試試這個。 – 2010-09-08 02:43:07

0

該解決方案文件夾通常是一個項目目錄之上,所以給這個鏡頭:

$(SolutionDir)\Tools\closure_compiler.jar 

如果不行,請查看full list of available macros。也許還有別的東西會接近。

+0

我沒有看到任何接近的東西。該文件是解決方案目錄中的1級。似乎它不支持相對路徑。感謝您的幫助。 – 2010-09-07 19:06:54

+0

啊,我的不好。我認爲你的意思是從項目目錄升級1級。抱歉。 – 2010-09-07 19:21:14

相關問題