You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
@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.
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.
Simply enforce lower case path every where. It is rough and inflexible. However it should solve the immediate problem.
Right now, the dependencies packager tool is constructing paths using
OriginalCase
package ID and version, notlowercase
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
The text was updated successfully, but these errors were encountered: