启动Developer Command Prompt:
然后从Visual Studio中复制行:
$(ProjectDir)
替换为项目的实际路径。我建议将命令放入批处理文件中,只需在Post Build Events字段中运行THAT即可。
您可以将其添加到您的解决方案中,然后从解决方案资源管理器中右键单击“打开方式”,并添加一个名为的新项目:
这将允许您将来从解决方案资源管理器运行批处理文件。 More details here。
Bat文件解决方案1
传递路径以从中运行,或依赖于%SolutionPath%(这是从Visual Studio运行bat文件时提供的env var)。所以这个方法正在做一些目录嗅探。 (注意,下面的解决方案2可能更好 - 肯定更简单)
@echo off
if not [%1]==[] (set "ProjectDir=%1")
if not [%SolutionPath%]==[] (set "ProjectDir=%SolutionPath%\ProjectSubDirectory)
if [%ProjectDir%]==[] (
echo Error, no Solution Path env var or ProjectDir provided
exit /b
goto :eof
)
cd /d %ProjectDir%
ng build
然后,您的帖子构建事件将运行$(ProjectDir)\MyBatchFile.bat "$(ProjectDir)"
Bat文件解决方案2
在目录中运行相对于批处理文件的位置(更简单的解决方案)。
@echo off
pushd "%dp0"
ng build
popd
在这种情况下,您的post build事件将只是:$(ProjectDir)\MyBatchFile.bat
,它将在同一目录中运行。为简单起见,我建议这种方法。
Pushd和popd类似于“CD”,除了它是一个可以弹出的堆栈。因此popd会将您返回到原始目录。 %dp0
是当前正在执行的bat文件的目录。