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

NuGet packages folder now has lowercase paths, which affects DependenciesPackager #94

Closed
joelverhagen opened this issue Sep 6, 2016 · 3 comments
Assignees
Milestone

Comments

@joelverhagen
Copy link
Contributor

Right now, the dependencies packager tool is constructing paths using OriginalCase package ID and version, not lowercase in two places: hash path, directory name.

This change in NuGet, along with it's downstream affected parties is outlined here:
NuGet/Home#2522

I think the right fix here it to consume NuGet APIs to build these paths, much like what .NET CLI is doing (example). The NuGet type to use is probably VersionFolderPathResolver.

If this work is not done, the DOTNET_HOSTING_OPTIMIZATION_CACHE on Linux will no longer work, since the .deps.json file of .NET Core 1.1.0 apps will have lowercase paths. Windows will keep working since it's a case-insensitive file system, but it should be fixed as well since this is basically just a convenient coincidence. From what I understand, this will not break the Linux app, it will just mean startup time is much slower.

/cc @troydai @javiercn

@troydai
Copy link
Contributor

troydai commented Sep 7, 2016

/cc @muratg @glennc

@muratg muratg added this to the 1.1.0 milestone Sep 7, 2016
@muratg
Copy link

muratg commented Sep 7, 2016

@troydai could you sync up with @victorhurdugaci and get this one? We may need to consume the new CLI to be able to do this, and not sure when that can happen.

cc @pranavkm

@troydai
Copy link
Contributor

troydai commented Sep 20, 2016

There are two solutions, we discussed.

  1. Use NuGet.client's API to generate the package path. This is the better solution as it lifts the responsibility of path schema from tools. However, since the DependenciesPackager depends on 1.0.0-preview2 ProjectModel, it introduces conflict between NuGet 3.5.0-rc2-final and other NuGet version which 1.0.0-preview2 sdk depends on. So solve the conflict, the tools' dependencies need to be overhauled. Given that CLI SDK is still in the process of moving towards MSBuild (meaning project model may keep changing) this is a volatile I don't want to take.
  2. Simply enforce lower case path every where. It is rough and inflexible. However it should solve the immediate problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants