Skip to content

Commit f530a05

Browse files
committed
Remove the code, downloading packages, add restore
1 parent 6a3f530 commit f530a05

2 files changed

Lines changed: 31 additions & 48 deletions

File tree

packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/PostProcessing/GeneratedCodeWorkspace.cs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,38 @@ internal static async Task AddPackageReferencesFromProject()
275275
{
276276
return;
277277
}
278-
278+
// Use the dotnet restore mechanism to get all the dependent packages.
279+
Process restore = new();
280+
ProcessStartInfo info = new()
281+
{
282+
UseShellExecute = false,
283+
WindowStyle = ProcessWindowStyle.Hidden,
284+
FileName = "dotnet",
285+
Arguments = $"restore {projectFilePath}",
286+
RedirectStandardOutput = true,
287+
RedirectStandardError = true,
288+
};
289+
restore.StartInfo = info;
290+
if (restore.Start())
291+
{
292+
await restore.WaitForExitAsync();
293+
if (restore.ExitCode != 0)
294+
{
295+
string output = await restore.StandardOutput.ReadToEndAsync();
296+
string error = await restore.StandardError.ReadToEndAsync();
297+
CodeModelGenerator.Instance.Emitter.Debug(
298+
$"The dotnet restore {projectFilePath} command exited with {restore.ExitCode}.]\n" +
299+
$"Standard output: {output}\n" +
300+
$"Error output: {error}"
301+
);
302+
}
303+
}
304+
else
305+
{
306+
CodeModelGenerator.Instance.Emitter.Debug(
307+
$"Unable to run dotnet restore on the project {projectFilePath}");
308+
}
279309
var projectRoot = ProjectRootElement.Open(projectFilePath, new MSBuildProjectCollection());
280-
281310
var nugetSettings = Settings.LoadDefaultSettings(projectFilePath);
282311
var globalPackagesFolder = SettingsUtility.GetGlobalPackagesFolder(nugetSettings);
283312

packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator/src/Utilities/ExternalTypeReferenceResolver.cs

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -236,52 +236,6 @@ private static async Task<ResolutionResult> ResolveResultAsync(InputExternalType
236236
string? assemblyPath = NugetPackageResolver.FindPackageAssembly(
237237
globalPackagesFolder, external.Package!, external.MinVersion);
238238

239-
if (assemblyPath == null)
240-
{
241-
try
242-
{
243-
string? resolvedVersion;
244-
// Search for the compatible version.
245-
if (!string.IsNullOrEmpty(external.MinVersion))
246-
{
247-
// If min version was provided, we
248-
// 1. Search if it is in our repositories;
249-
// 2. Get the latest one if it is not.
250-
// 3. If our version is a pre release, include pre released versions in our search.
251-
NuGetVersion minVersion = new(external.MinVersion);
252-
IList<NuGetVersion> versions = await NugetPackageResolver.GetAllVersions(external.Package!, nugetSettings, allowPrerelease: minVersion.IsPrerelease);
253-
if (versions.Any(x => x == minVersion))
254-
{
255-
resolvedVersion = external.MinVersion;
256-
}
257-
else
258-
{
259-
resolvedVersion = versions.Max()?.ToString();
260-
}
261-
}
262-
else
263-
{
264-
// If min version was not provided, get the latest stable version.
265-
resolvedVersion = await NugetPackageResolver.ResolveLatestPackageVersion(external.Package!, nugetSettings);
266-
}
267-
if (!string.IsNullOrEmpty(resolvedVersion))
268-
{
269-
var downloader = new NugetPackageDownloader(external.Package!, resolvedVersion!, null, nugetSettings);
270-
var downloadedPath = await downloader.DownloadAndInstallPackage();
271-
var downloadedAssembly = Path.Combine(downloadedPath, $"{external.Package}.dll");
272-
if (File.Exists(downloadedAssembly))
273-
{
274-
assemblyPath = downloadedAssembly;
275-
}
276-
}
277-
}
278-
catch (Exception ex)
279-
{
280-
generator.Emitter?.Debug(
281-
$"Could not download package '{external.Package}' for external type '{external.Identity}': {ex.Message}");
282-
}
283-
}
284-
285239
if (assemblyPath == null || !File.Exists(assemblyPath))
286240
{
287241
var versionQualifier = string.IsNullOrEmpty(external.MinVersion)

0 commit comments

Comments
 (0)