代码之家  ›  专栏  ›  技术社区  ›  Shawn Mclean

visualstudio命令行文件目录中的相对路径

  •  1
  • Shawn Mclean  · 技术社区  · 14 年前

    我正在为VisualStudio项目编写生成后事件。

    我有:

    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 回复  |  直到 14 年前
        1
  •  2
  •   Jeff Mercado    14 年前

    这里有一个可能的解决方法。您只需要将相对路径转换为绝对路径。如果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%"
    

    你可能需要调整这些来满足你的需要。

        2
  •  0
  •   Adam Lear    14 年前

    解决方案文件夹通常位于项目目录上方,因此请尝试一下:

    $(SolutionDir)\Tools\closure_compiler.jar
    

    full list of available macros . 也许还有别的东西会接近。