Я впервые пытался создать приложение ASP.NET Core 2.1 в Docker, я заметил много пропущенных ошибок пути.Задаваясь вопросом, почему в Linux существуют пути Windows, я обнаружил, что мой .csproj
файл из Visual Studio содержит несколько ссылок на сборки, используя HintPath
:
<ItemGroup>
<Reference Include="Microsoft.AspNetCore.Hosting.Abstractions">
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.hosting.abstractions\2.1.1\lib\netstandard2.0\Microsoft.AspNetCore.Hosting.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNetCore.Http.Abstractions">
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.http.abstractions\2.1.1\lib\netstandard2.0\Microsoft.AspNetCore.Http.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNetCore.Mvc.Core">
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.core\2.1.1\lib\netstandard2.0\Microsoft.AspNetCore.Mvc.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNetCore.StaticFiles">
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.staticfiles\2.1.1\lib\netstandard2.0\Microsoft.AspNetCore.StaticFiles.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Net.Http.Headers">
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.net.http.headers\2.1.1\lib\netstandard2.0\Microsoft.Net.Http.Headers.dll</HintPath>
</Reference>
</ItemGroup>
Удаление их приводит к отсутствию ошибок ссылок, я попытался установитьпакеты с NuGet вручную, например Microsoft.AspNetCore.Hosting.Abstractions
, Microsoft.AspNetCore.Http.Abstractions
и так далее.
Это работает, но мне интересно почему эти ссылки были созданы?
Как я могу помешать Visual Studio создавать эти HintPath на основе пути Windows?
Я занимаюсь разработкой для Linux, поэтому мне нужны независимые от платформы пути.Не понимаю, почему VS не просто ссылочные пакеты NuGet вместо этих локальных путей.