Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion build/common.project.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,24 @@

<!-- Common -->
<PropertyGroup>
<IsBuildOnlyXPLATProjects>$(DotNetBuildFromSource)</IsBuildOnlyXPLATProjects>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NETFXTargetFrameworkVersion>v4.7.2</NETFXTargetFrameworkVersion>
<NETFXTargetFramework>net472</NETFXTargetFramework>
<NETCoreTargetFramework>netcoreapp2.1</NETCoreTargetFramework>
<NETCoreTargetFramework Condition="'$(DotNetBuildFromSource)' == 'true'">net6.0</NETCoreTargetFramework>
<NETCoreTestTargetFramework>netcoreapp5.0</NETCoreTestTargetFramework>
<IsBuildOnlyXPLATProjects>$(DotNetBuildFromSource)</IsBuildOnlyXPLATProjects>
<NetStandardVersion>netstandard2.0</NetStandardVersion>
<NetStandardVersion Condition="'$(DotNetBuildFromSource)' == 'true'">net6.0</NetStandardVersion>
<TargetFrameworksExe>$(NETFXTargetFramework);$(NETCoreTargetFramework)</TargetFrameworksExe>
<TargetFrameworksExe Condition="'$(IsBuildOnlyXPLATProjects)' == 'true' OR '$(IsXPlat)' == 'true'">$(NETCoreTargetFramework)</TargetFrameworksExe>
<TargetFrameworksExeForSigning>$(TargetFrameworksExe);netcoreapp5.0</TargetFrameworksExeForSigning>
<TargetFrameworksExeForSigning Condition=" '$(IsXPlat)' == 'true' ">$(NETCoreTargetFramework);netcoreapp5.0</TargetFrameworksExeForSigning>
<TargetFrameworksExeForSigning Condition="'$(DotNetBuildFromSource)' == 'true'">$(TargetFrameworksExe);net6.0</TargetFrameworksExeForSigning>
<TargetFrameworksLibrary>$(NETFXTargetFramework);$(NetStandardVersion)</TargetFrameworksLibrary>
<TargetFrameworksLibrary Condition="'$(IsBuildOnlyXPLATProjects)' == 'true'">$(NetStandardVersion)</TargetFrameworksLibrary>
<TargetFrameworksLibraryForSigning>$(TargetFrameworksLibrary);netcoreapp5.0</TargetFrameworksLibraryForSigning>
<TargetFrameworksLibraryForSigning Condition="'$(DotNetBuildFromSource)' == 'true'">$(TargetFrameworksLibrary);net6.0</TargetFrameworksLibraryForSigning>
<TargetFrameworksLibraryForCrossVerificationTests>$(NETFXTargetFramework);netcoreapp5.0</TargetFrameworksLibraryForCrossVerificationTests>
<RepositoryRootDirectory>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'README.md'))\</RepositoryRootDirectory>
<BuildCommonDirectory>$(RepositoryRootDirectory)build\</BuildCommonDirectory>
Expand Down Expand Up @@ -52,6 +56,8 @@
<MicrosoftDotNetBuildTasksFeedFilePath>$(SolutionPackagesFolder)microsoft.dotnet.build.tasks.feed\6.0.0-beta.20528.5\tools\netcoreapp2.1\Microsoft.DotNet.Build.Tasks.Feed.dll</MicrosoftDotNetBuildTasksFeedFilePath>
<MicrosoftDotNetMaestroTasksFilePath>$(SolutionPackagesFolder)microsoft.dotnet.maestro.tasks\1.1.0-beta.21378.2\tools\netcoreapp3.1\Microsoft.DotNet.Maestro.Tasks.dll</MicrosoftDotNetMaestroTasksFilePath>
<NoWarn>$(NoWarn);NU5105;MSB3277</NoWarn>
<!-- additional warnings new in .NET 6 that we need to disable when building with source-build -->
<NoWarn Condition="'$(DotNetBuildFromSource)' == 'true'">$(NoWarn);CS1998;CA1416;CS0618;CS1574</NoWarn>
</PropertyGroup>

<!-- Defaults -->
Expand Down Expand Up @@ -85,6 +91,7 @@
<!-- Same as SDK default, but without CandidateAssemblyFiles in front, which would search in Content items -->
<AssemblySearchPaths>{HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</AssemblySearchPaths>
<LangVersion>9</LangVersion>
<LangVersion Condition="'$(DotNetBuildFromSource)' == 'true'">latest</LangVersion>
</PropertyGroup>

<!-- DEBUG specific configuration settings -->
Expand Down
7 changes: 6 additions & 1 deletion build/common.targets
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<IsDesktop>true</IsDesktop>
</PropertyGroup>

<PropertyGroup Condition=" $(TargetFramework.StartsWith('netcoreapp')) OR $(TargetFramework.StartsWith('netstandard')) ">
<PropertyGroup Condition=" $(TargetFramework.StartsWith('netcoreapp')) OR $(TargetFramework.StartsWith('netstandard')) OR $(TargetFramework.StartsWith('net6')) ">
<DefineConstants>$(DefineConstants);IS_CORECLR</DefineConstants>
<IsCore>true</IsCore>
</PropertyGroup>
Expand Down Expand Up @@ -65,6 +65,11 @@
<None Include="$(MSBuildThisFileDirectory)..\icon.png" Pack="true" PackagePath="\" Visible="false" />
</ItemGroup>

<!-- Don't use PublicApiAnalyzer on source-build .NET -->
<PropertyGroup Condition=" '$(DotNetBuildFromSource)' == 'true' ">
<UsePublicApiAnalyzer>false</UsePublicApiAnalyzer>
</PropertyGroup>

<!-- Projects we pack become public APIs that others can use -->
<PropertyGroup Condition=" '$(IsBuildOnlyXPLATProjects)' != 'true' and '$(PackProject)' == 'true' ">
<UsePublicApiAnalyzer Condition=" '$(UsePublicApiAnalyzer)' == '' " >true</UsePublicApiAnalyzer>
Expand Down
6 changes: 4 additions & 2 deletions build/packages.targets
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<MicrosoftBuildPackageVersion Condition="'$(MicrosoftBuildPackageVersion)' == ''">16.8.0</MicrosoftBuildPackageVersion>
<NewtonsoftJsonPackageVersion Condition="$(NewtonsoftJsonPackageVersion) == ''">13.0.1</NewtonsoftJsonPackageVersion>
<MicrosoftWebXdtPackageVersion Condition="'$(MicrosoftWebXdtPackageVersion)' == ''">3.0.0</MicrosoftWebXdtPackageVersion>
<SystemComponentModelCompositionPackageVersion Condition="'$(SystemComponentModelCompositionPackageVersion)' == ''">4.5.0</SystemComponentModelCompositionPackageVersion>
<SystemPackagesVersion>4.3.0</SystemPackagesVersion>
<VSFrameworkVersion>17.0.0-previews-1-31321-016</VSFrameworkVersion>
<VSServicesVersion>16.153.0</VSServicesVersion>
Expand Down Expand Up @@ -42,10 +44,10 @@
<PackageReference Update="Microsoft.VisualStudio.VCProjectEngine" Version="$(VSFrameworkVersion)" />
<PackageReference Update="Microsoft.VisualStudio.Workspace.VSIntegration" Version="17.0.7-preview-0001-g5492e466a9" />
<PackageReference Update="Microsoft.VSSDK.BuildTools" Version="17.0.1600" />
<PackageReference Update="Microsoft.Web.Xdt" Version="3.0.0" />
<PackageReference Update="Microsoft.Web.Xdt" Version="$(MicrosoftWebXdtPackageVersion)" />
<PackageReference Update="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
<PackageReference Update="SharpZipLib" Version="1.3.2" />
<PackageReference Update="System.ComponentModel.Composition" Version="4.5.0" />
<PackageReference Update="System.ComponentModel.Composition" Version="$(SystemComponentModelCompositionPackageVersion)" />
<!--
The Microsoft.VisualStudio.SDK metapackage brings in System.Threading.Tasks.Dataflow 4.11.1 (assembly version 4.9.5.0).
However, our MSBuild integration tests use Microsoft.Build 16.8.0, which requires System.Threading.Tasks.Dataflow 4.9.0 (assembly version 4.9.3.0).
Expand Down
40 changes: 38 additions & 2 deletions eng/source-build/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,25 @@ while [[ -h $source ]]; do
[[ $source != /* ]] && source="$scriptroot/$source"
done


while [[ $# > 0 ]]; do
lowerI="$(echo $1 | awk '{print tolower($0)}')"
case $lowerI in
--configuration|-c)
configuration=$2
shift
;;
-*)
# just eat this so we don't try to pass it along to MSBuild
export DOTNET_CORESDK_NOPRETTYPRINT=1
;;
*)
args="$args $1"
;;
esac
shift
done

function ReadGlobalVersion {
local key=$1
local global_json_file="$scriptroot/global.json"
Expand Down Expand Up @@ -40,8 +59,25 @@ function GetNuGetPackageCachePath {
fi
}

export DOTNET=${DOTNET:-dotnet}
if [[ "$DOTNET" == "" && "$DOTNET_PATH" != "" ]]; then
export DOTNET="$DOTNET_PATH/dotnet"
else
ReadGlobalVersion dotnet
export SDK_VERSION=$_ReadGlobalVersion

mkdir -p "$scriptroot/../../cli"
curl -o "$scriptroot/../../cli/dotnet-install.sh" -L https://dot.net/v1/dotnet-install.sh

if (( $? )); then
echo "Could not download 'dotnet-install.sh' script. Please check your network and try again!"
exit 1
fi
chmod +x "$scriptroot/../../cli/dotnet-install.sh"

"$scriptroot/../../cli/dotnet-install.sh" -v $SDK_VERSION -i "$scriptroot/../../cli"
export DOTNET=${DOTNET:-$scriptroot/../../cli/dotnet}
fi

ReadGlobalVersion Microsoft.DotNet.Arcade.Sdk
export ARCADE_VERSION=$_ReadGlobalVersion
"$DOTNET" msbuild "$scriptroot/source-build.proj" /p:DotNetBuildFromSource=true /p:ArcadeBuildFromSource=true "/p:RepoRoot=$scriptroot/../../" "/bl:$scriptroot/../../artifacts/source-build/self/log/source-build.binlog"
"$DOTNET" msbuild "$scriptroot/source-build.proj" /p:Configuration=$configuration /p:DotNetBuildFromSource=true /p:ArcadeBuildFromSource=true "/p:RepoRoot=$scriptroot/../../" "/bl:$scriptroot/../../artifacts/source-build/self/log/source-build.binlog" $args
3 changes: 3 additions & 0 deletions eng/source-build/global.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{
"tools": {
"dotnet": "6.0.100-preview.7.21379.14"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21309.7"
}
Expand Down
6 changes: 4 additions & 2 deletions eng/source-build/source-build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

<PropertyGroup>
<ProjectRoot>$(MSBuildThisFileDirectory)../../</ProjectRoot>
<ArcadeDir Condition="'$(SOURCE_BUILT_SDK_DIR_ARCADE)' != ''">$(SOURCE_BUILT_SDK_DIR_ARCADE)/tools/</ArcadeDir>
<ArcadeDir Condition="'$(ArcadeDir)' == ''">$(NuGetPackageRoot)/microsoft.dotnet.arcade.sdk/$(ARCADE_VERSION)/tools/</ArcadeDir>
</PropertyGroup>

<Target Name="Build" DependsOnTargets="SourceBuildPostBuild">
Expand All @@ -18,14 +20,14 @@
<Target Name="SourceBuildPostBuild" DependsOnTargets="SourceBuildInnerBuild">
<Message Text="Running source-build PostBuild target" Importance="High" />

<MSbuild Projects="$(NuGetPackageRoot)/microsoft.dotnet.arcade.sdk/$(ARCADE_VERSION)/tools/Build.proj"
<MSbuild Projects="$(ArcadeDir)/Build.proj"
Properties="_NETCORE_ENGINEERING_TELEMETRY=AfterSourceBuild;ArcadeBuildFromSource=true;Restore=true;Build=false;Pack=false;Publish=false;Rebuild=false;Test=false;IntegrationTest=false;PerformanceTest=false;PreventPrebuiltBuild=false;BaseInnerSourceBuildCommand=echo skipping internal build with args: "
Targets="Execute"
/>

<Message Text="Finished restoring Arcade" Importance="High" />

<MSbuild Projects="$(NuGetPackageRoot)/microsoft.dotnet.arcade.sdk/$(ARCADE_VERSION)/tools/SourceBuild/AfterSourceBuild.proj"
<MSbuild Projects="$(ArcadeDir)/SourceBuild/AfterSourceBuild.proj"
Properties="_NETCORE_ENGINEERING_TELEMETRY=AfterSourceBuild;ArcadeBuildFromSource=true;CurrentRepoSourceBuildArtifactsPackagesDir=$(ProjectRoot)artifacts/nupkgs/"
/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

namespace NuGet.Build.Tasks.Pack
{
public class GetPackOutputItemsTask : Task
public class GetPackOutputItemsTask : Microsoft.Build.Utilities.Task
{
[Required]
public string PackageId { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace NuGet.Build.Tasks.Pack
/// This list is then later traversed to determine the version
/// of the project reference during pack.
/// </summary>
public class GetProjectReferencesFromAssetsFileTask : Task
public class GetProjectReferencesFromAssetsFileTask : Microsoft.Build.Utilities.Task
{
public string RestoreOutputAbsolutePath { get; set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace NuGet.Build.Tasks.Pack
{
public class IsPackableFalseWarningTask : Task
public class IsPackableFalseWarningTask : Microsoft.Build.Utilities.Task
{
public ILogger Logger => new MSBuildLogger(Log);
public override bool Execute()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,12 +180,15 @@
<PackagePathDir Condition="'$(TargetFramework)' == '$(NetStandardVersion)'">CoreCLR/</PackagePathDir>
</PropertyGroup>
<ItemGroup>
<TfmSpecificPackageFile Include="$(OutputPath)\$(ILMergeSubpath)NuGet.Build.Tasks.Pack.dll">
<TfmSpecificPackageFile Include="$(OutputPath)\$(ILMergeSubpath)NuGet.Build.Tasks.Pack.dll" Condition="'$(IsBuildOnlyXPLATProjects)' != 'true'">
<PackagePath>$(PackagePathDir)</PackagePath>
</TfmSpecificPackageFile>
<TfmSpecificPackageFile Include="$(OutputPath)\$(ILMergeSubpath)**\NuGet*.resources.dll">
<PackagePath>$(PackagePathDir)</PackagePath>
</TfmSpecificPackageFile>
<TfmSpecificPackageFile Include="$(OutputPath)\$(ILMergeSubpath)NuGet*.dll" Condition="'$(IsBuildOnlyXPLATProjects)' == 'true'">
<PackagePath>$(PackagePathDir)</PackagePath>
</TfmSpecificPackageFile>
</ItemGroup>
</Target>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace NuGet.Build.Tasks
/// <summary>
/// Represents an MSBuild task that performs a command-line based restore.
/// </summary>
public sealed class GenerateRestoreGraphFileTask : Task, ICancelableTask, IDisposable
public sealed class GenerateRestoreGraphFileTask : Microsoft.Build.Utilities.Task, ICancelableTask, IDisposable
{
internal readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace NuGet.Build.Tasks
{
public class GetCentralPackageVersionsTask : Task
public class GetCentralPackageVersionsTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace NuGet.Build.Tasks
/// Determine the project's targetframework(s) based
/// on the available properties.
/// </summary>
public class GetProjectTargetFrameworksTask : Task
public class GetProjectTargetFrameworksTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

namespace NuGet.Build.Tasks
{
public class GetReferenceNearestTargetFrameworkTask : Task
public class GetReferenceNearestTargetFrameworkTask : Microsoft.Build.Utilities.Task
{
private const string NEAREST_TARGET_FRAMEWORK = "NearestTargetFramework";
private const string TARGET_FRAMEWORKS = "TargetFrameworks";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

namespace NuGet.Build.Tasks
{
public class GetRestoreDotnetCliToolsTask : Task
public class GetRestoreDotnetCliToolsTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace NuGet.Build.Tasks
{
public class GetRestoreFrameworkReferencesTask : Task
public class GetRestoreFrameworkReferencesTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace NuGet.Build.Tasks
{
public class GetRestorePackageDownloadsTask : Task
public class GetRestorePackageDownloadsTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace NuGet.Build.Tasks
{
public class GetRestorePackageReferencesTask : Task
public class GetRestorePackageReferencesTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace NuGet.Build.Tasks
{
public class GetRestoreProjectJsonPathTask : Task
public class GetRestoreProjectJsonPathTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

namespace NuGet.Build.Tasks
{
public class GetRestoreProjectReferencesTask : Task
public class GetRestoreProjectReferencesTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// Full path to the msbuild project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace NuGet.Build.Tasks
/// <summary>
/// Get all the settings to be used for project restore.
/// </summary>
public class GetRestoreSettingsTask : Task
public class GetRestoreSettingsTask : Microsoft.Build.Utilities.Task
{
[Required]
public string ProjectUniqueName { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace NuGet.Build.Tasks
/// <summary>
/// Convert .metaproj paths to project paths.
/// </summary>
public class GetRestoreSolutionProjectsTask : Task
public class GetRestoreSolutionProjectsTask : Microsoft.Build.Utilities.Task
{
private const string MetaProjExtension = ".metaproj";

Expand Down
2 changes: 1 addition & 1 deletion src/NuGet.Core/NuGet.Build.Tasks/RestoreTaskEx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace NuGet.Build.Tasks
/// <summary>
/// Represents an MSBuild task that performs a command-line based restore.
/// </summary>
public sealed class RestoreTaskEx : Task, ICancelableTask, IDisposable
public sealed class RestoreTaskEx : Microsoft.Build.Utilities.Task, ICancelableTask, IDisposable
{
internal readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace NuGet.Build.Tasks
{
public class WarnForInvalidProjectsTask : Task
public class WarnForInvalidProjectsTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// All known projects.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace NuGet.Build.Tasks
/// <summary>
/// Generate dg file output.
/// </summary>
public class WriteRestoreGraphTask : Task
public class WriteRestoreGraphTask : Microsoft.Build.Utilities.Task
{
/// <summary>
/// DG file entries
Expand Down
4 changes: 2 additions & 2 deletions src/NuGet.Core/NuGet.Frameworks/NuGet.Frameworks.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

<PropertyGroup>
<Description>NuGet's understanding of target frameworks.</Description>
<TargetFrameworks>$(TargetFrameworksLibrary)</TargetFrameworks>
<TargetFrameworks Condition="'$(IsBuildOnlyXPLATProjects)' != 'true'">$(TargetFrameworks);net40</TargetFrameworks>
<TargetFrameworks Condition="'$(IsBuildOnlyXPLATProjects)' == 'true'">$(TargetFrameworksLibrary);netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="'$(IsBuildOnlyXPLATProjects)' != 'true'">$(TargetFrameworksLibrary);net40</TargetFrameworks>
<TargetFramework />
<NoWarn>$(NoWarn);CS1591;CS1574;CS1573</NoWarn>
<PackProject>true</PackProject>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace NuGet.PackageManagement
{
public class IDEExecutionContext : ExecutionContext
public class IDEExecutionContext : NuGet.ProjectManagement.ExecutionContext
{
public ICommonOperations CommonOperations { get; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
<TargetFrameworks>$(TargetFrameworksExeForSigning)</TargetFrameworks>
<UseParallelXunit>true</UseParallelXunit>
<Description>Unit tests for NuGet.Packaging.</Description>
<!-- remove warnings for obsolete types and methods: SYSLIB0023: RNGCryptoServiceProvider, SYSLIB0026: X509Certificate2() blank constructor -->
<NoWarn>SYSLIB0023;SYSLIB0026</NoWarn>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public FileConflictAction ResolveFileConflict(string message)

public ISourceControlManagerProvider SourceControlManagerProvider { get; set; }

public ExecutionContext ExecutionContext
public NuGet.ProjectManagement.ExecutionContext ExecutionContext
{
get { return TestExecutionContext; }
}
Expand Down Expand Up @@ -101,7 +101,7 @@ public Guid OperationId
}
}

public class TestExecutionContext : ExecutionContext
public class TestExecutionContext : NuGet.ProjectManagement.ExecutionContext
{
public TestExecutionContext(PackageIdentity directInstall)
{
Expand Down