0

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

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. 是否存在语法错误?

4

1 回答 1

0

您错过了goto :eofNuGet 行之后的呼叫;这表示: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
于 2012-12-08T04:28:54.820 回答