baseclass / Contrib.Nuget

Extending nuget with nuget packages
MIT License
30 stars 21 forks source link

error MSB4018: The "PackageRetrievalTask" task failed unexpectedly. #46

Closed eugenevital closed 6 years ago

eugenevital commented 6 years ago

This issue looks to be related to these issues. https://github.com/baseclass/Contrib.Nuget/issues/44 https://github.com/baseclass/Contrib.Nuget/issues/34

When using MSBuild to build a PROJECT FILE the PackageRetrievalTask failes because the SolutionPath is set to SolutionPath= *Undefined*

MSBUILD COMMAND: msbuild "C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj" /t:Build /p:Platform=AnyCPU /p:Configuration=Release /p:GenerateSerializationAssemblies=On /p:AutoParameterizationWebConfigConnectionStrings=False /fl /flp:logfile=msbuild.log;verbosity=diagnostic

MSBUILD LOG Target "CollectNugetOutputFiles: (TargetId:56)" in file "C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets" from project "C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj" (target "CopyToOutput" depends on it): Task "Message" (TaskId:23) Task Parameter:Text=Collecting NuGet output files for pennfoster-oauth2: (TaskId:23) Collecting NuGet output files for pennfoster-oauth2: (TaskId:23) Done executing task "Message". (TaskId:23) Using "PackageRetrievalTask" task from assembly "C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.Build.dll". Task "PackageRetrievalTask" (TaskId:24) Task Parameter:ProjectName=pennfoster-oauth2 (TaskId:24) Task Parameter:ProjectDirectory=C:\workspace\mastercbfef5a5\src\pennfoster-oauth2 (TaskId:24) Task Parameter:ProjectFullPath=C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj (TaskId:24) Task Parameter:SolutionPath= *Undefined* (TaskId:24)

ERRORS BEING GENERATED ( see Illegal characters in path )

C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj" (Build target) (1) -> (CollectNugetOutputFiles target) -> C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: The "PackageRetrievalTask" task failed unexpectedly. [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: System.ArgumentException: Illegal characters in path. [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath) [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String[] fullPathList, Boolean checkForDuplicates, Boolean needFullPath) [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at System.IO.FileSystemEnumerableIterator1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler1 resultHandler, Boolean checkHost) [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at System.IO.Directory.EnumerateFiles(String path, String searchPattern, SearchOption searchOption) [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at Baseclass.Contrib.Nuget.Output.Build.PackageRetrievalTask.GetFilteredProjectNugetPackages(NugetPackageSource currentNugetPackageSource, HashSet`1 usedNugetPackages) [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at Baseclass.Contrib.Nuget.Output.Build.PackageRetrievalTask.Execute() [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj] C:\workspace\mastercbfef5a5\src\packages\Baseclass.Contrib.Nuget.Output.2.4.1\build\net40\Baseclass.Contrib.Nuget.Output.targets(65,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj]

mnivet commented 6 years ago

The package need the SolutionDir variable to be set to find the packages folder which is juts under the solution directory. And that variable is set automatically only if you run msbuild over your solution but not if your run msbuild over a single project

To make it work you must change your msbuild command.
Two solutions :

1/ Add the SolutionDir property to your command
msbuild "C:\workspace\mastercbfef5a5\src\pennfoster-oauth2\pennfoster-oauth2.csproj" /t:Build /p:Platform=AnyCPU /p:Configuration=Release /p:GenerateSerializationAssemblies=On /p:AutoParameterizationWebConfigConnectionStrings=False /p:SolutionDir=C:\workspace\mastercbfef5a5\src\ /fl /flp:logfile=msbuild.log;verbosity=diagnostic

2/ run msbuild on the solution file (which is what Visual Studio do)
msbuild "C:\workspace\mastercbfef5a5\src\pennfoster.sln" /t:pennfoster-oauth2:Build /p:Platform=AnyCPU /p:Configuration=Release /p:GenerateSerializationAssemblies=On /p:AutoParameterizationWebConfigConnectionStrings=False /fl /flp:logfile=msbuild.log;verbosity=diagnostic

nb : your solution dir and solution name are guess

romerod commented 6 years ago

This bugs should be fixed, version 2.4.1 was built from old sources see #43