答案 0 :(得分:1)
启动Developer Command Prompt:
然后从Visual Studio复制行:
--gen-object-api
替换为项目的实际路径。答案 1 :(得分:1)
我建议将命令放入批处理文件中,然后在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
在这种情况下,您的帖子构建事件将只是:$(ProjectDir)\MyBatchFile.bat
,它将在同一目录中运行。为简单起见,我建议这种方法。
Pushd和popd类似于" CD"除了它是一个你可以弹出的堆栈。因此popd会将您返回到原始目录。 %dp0
是当前正在执行的bat文件的目录。