diff --git a/src/Microsoft.Extensions.ProjectModel.Sources/DotNet/DotNetProjectContext.cs b/src/Microsoft.Extensions.ProjectModel.Sources/DotNet/DotNetProjectContext.cs index d28d100515..7de51a2b53 100644 --- a/src/Microsoft.Extensions.ProjectModel.Sources/DotNet/DotNetProjectContext.cs +++ b/src/Microsoft.Extensions.ProjectModel.Sources/DotNet/DotNetProjectContext.cs @@ -58,6 +58,7 @@ namespace Microsoft.Extensions.ProjectModel public string DepsJson => _paths.RuntimeFiles.DepsJson; public string RuntimeConfigJson => _paths.RuntimeFiles.RuntimeConfigJson; public string PackagesDirectory => _projectContext.PackagesDirectory; + public string PackageLockFile => Path.Combine(Path.GetDirectoryName(ProjectFullPath), "project.lock.json"); public string AssemblyFullPath => !IsClassLibrary && (_projectContext.IsPortable || TargetFramework.IsDesktop()) diff --git a/src/Microsoft.Extensions.ProjectModel.Sources/IProjectContext.cs b/src/Microsoft.Extensions.ProjectModel.Sources/IProjectContext.cs index 64af21c0db..163c033bcb 100644 --- a/src/Microsoft.Extensions.ProjectModel.Sources/IProjectContext.cs +++ b/src/Microsoft.Extensions.ProjectModel.Sources/IProjectContext.cs @@ -18,6 +18,7 @@ namespace Microsoft.Extensions.ProjectModel string Config { get; } string DepsJson { get; } string RuntimeConfigJson { get; } + string PackageLockFile { get; } string PackagesDirectory { get; } string TargetDirectory { get; } string AssemblyFullPath { get; } diff --git a/src/Microsoft.Extensions.ProjectModel.Sources/MsBuild/MsBuildProjectContext.cs b/src/Microsoft.Extensions.ProjectModel.Sources/MsBuild/MsBuildProjectContext.cs index b11c6b48d9..4e9a6f89c0 100644 --- a/src/Microsoft.Extensions.ProjectModel.Sources/MsBuild/MsBuildProjectContext.cs +++ b/src/Microsoft.Extensions.ProjectModel.Sources/MsBuild/MsBuildProjectContext.cs @@ -54,8 +54,19 @@ namespace Microsoft.Extensions.ProjectModel public string Config => AssemblyFullPath + ".config"; public string DepsJson => Path.Combine(TargetDirectory, Path.GetFileNameWithoutExtension(AssemblyFullPath) + ".deps.json"); public string RuntimeConfigJson => Path.Combine(TargetDirectory, Path.GetFileNameWithoutExtension(AssemblyFullPath) + ".runtimeconfig.json"); - public string PackagesDirectory => FindProperty("NuGetPackageRoot"); + public string PackageLockFile + { + get + { + var restoreOutputPath = FindProperty("RestoreOutputPath"); + if (string.IsNullOrEmpty(restoreOutputPath)) + { + restoreOutputPath = Path.Combine(Path.GetDirectoryName(ProjectFullPath), "obj"); + } + return Path.Combine(restoreOutputPath, "project.assets.json"); + } + } public string AssemblyFullPath => FindProperty("TargetPath"); public string Platform => FindProperty("Platform"); public string ProjectFullPath => _project.FullPath;