有关post build event命令的帮助

时间:2012-12-08 03:33:14

标签: batch-file msbuild command nuget post-build-event

我使用以下内容作为构建后事件:

FOR %%a in ($(ProjectDir)$(OutDir)MyLibrary.*.dll) DO CALL :package %%~na

:package 
"$(SolutionDir)\..\..\..\Packages\NuGet.exe" pack "$(SolutionDir)%1\%1.csproj" -o "$(SolutionDir)\..\..\..\Packages"

以上功能是在文件夹中找到所有MyLibrary dll,并从中创建一个nuget包。有5个文件符合MyLibrary。*。dll的搜索条件。但是只创建了一个包 - 找到第一个文件。

任何人都会看到上述任何问题,为什么它只创建一个包而不是5.是否存在语法错误?

1 个答案:

答案 0 :(得分:0)

您在NuGet线之后错过了goto :eof来电;表示:package函数的结束。因此,循环调用函数,但函数永远不会返回循环。

FOR %%a in ($(ProjectDir)$(OutDir)MyLibrary.*.dll) DO CALL :package %%~na
goto End

:package 
"$(SolutionDir)\..\..\..\Packages\NuGet.exe" pack "$(SolutionDir)%1\%1.csproj" -o "$(SolutionDir)\..\..\..\Packages"
goto :eof

:End