我使用以下内容作为构建后事件:
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.是否存在语法错误?
答案 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