Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing TestInfo class in MSBuild #55

Closed
daveaglick opened this issue Jun 15, 2018 · 1 comment
Closed

Missing TestInfo class in MSBuild #55

daveaglick opened this issue Jun 15, 2018 · 1 comment

Comments

@daveaglick
Copy link
Collaborator

Adding this for posterity...

Tests were blowing up:

Target ResolvePackageAssets:
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018: The "ResolvePackageAssets" task failed unexpectedly.
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018: System.NullReferenceException: Object reference not set to an instance of an object.
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at NuGet.ProjectModel.LockFileFormat.Read(TextReader reader, ILogger log, String path)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at NuGet.ProjectModel.LockFileFormat.Read(Stream stream, ILogger log, String path)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at NuGet.Common.FileUtility.SafeRead[T](String filePath, Func`3 read)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at NuGet.ProjectModel.LockFileUtilities.GetLockFile(String lockFilePath, ILogger logger)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.LockFileCache.LoadLockFile(String path)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.LockFileCache.GetLockFile(String path)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheWriter..ctor(ResolvePackageAssets task, Stream stream)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader.CreateReaderFromDisk(ResolvePackageAssets task, Byte[] settingsHash)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader..ctor(ResolvePackageAssets task)
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ReadItemGroups()
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ExecuteCore()
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.NET.Build.Tasks.TaskBase.Execute()
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
    C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
Done building target "ResolvePackageAssets" in project "SdkFrameworkProject.csproj" -- FAILED.

Traced it back to this block in BuildEnvironmentHelper (which is used from NuGet.MSBuildSdkResolver):

    private static bool CheckIfRunningTests()
    {
      if (BuildEnvironmentHelper._runningTests.HasValue)
        return BuildEnvironmentHelper._runningTests.Value;
      lock (BuildEnvironmentHelper._runningTestsLock)
      {
        if (BuildEnvironmentHelper._runningTests.HasValue)
          return BuildEnvironmentHelper._runningTests.Value;
        BuildEnvironmentHelper._runningTests = new bool?((bool) typeof (ITask).Assembly.GetType("Microsoft.Build.Framework.TestInfo").GetField("s_runningTests", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic).GetValue((object) null));
        return BuildEnvironmentHelper._runningTests.Value;
      }
    }

Specifically, the call to (ITask).Assembly.GetType("Microsoft.Build.Framework.TestInfo") was returning null because the FrameworkTests project didn't have the latest version of Microsoft.Build.Framework and the TestInfo class was added recently.

@daveaglick
Copy link
Collaborator Author

This is resolved in the latest commit.

daveaglick added a commit that referenced this issue Jun 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant