Я не понимаю предупреждений и ошибок от Visual Studio 2019. Кажется, что все ссылки на пакеты проекта больше не работают после обновления с Visual Studio 2017. При компиляции файла в журнале появляются начальные строки. решение.
1>------ Build started: Project: ClientServerUpload, Configuration: Debug Any CPU ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Text.Encoding.CodePages". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3243: No way to resolve conflict between "System.Text.Encoding.CodePages, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "System.Text.Encoding.CodePages". Choosing "System.Text.Encoding.CodePages, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" arbitrarily.
1> No way to resolve conflict between "FSharp.Core, Version=4.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Choosing "FSharp.Core, Version=4.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" arbitrarily.
1> No way to resolve conflict between "FSharp.Core, Version=4.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "FSharp.Core, Version=4.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Choosing "FSharp.Core, Version=4.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" arbitrarily.
1> Consider app.config remapping of assembly "FSharp.Core, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" from Version "4.4.3.0" [] to Version "4.7.0.0" [\\mypath\packages\FSharp.Core.4.7.0\lib\net45\FSharp.Core.dll] to solve conflict and get rid of warning.
После вышесказанного есть много других строк, но в любом случае я не вижу, что идет не так. Например, я выбираю первое сообщение о "System.Text.Encoding.CodePages"
. Есть предупреждение "Could not locate the assembly"
и еще одно о конфликте между Version=4.1.3.0
и ссылкой без версии. Но откуда это смотрит на Version=4.1.3.0
? В pacakge.config есть строка:
<package id="System.Text.Encoding.CodePages" version="4.7.0" targetFramework="net461" />
и если я редактирую файл .proj, я вижу:
<Reference Include="System.Text.Encoding.CodePages"> <HintPath>..\packages\System.Text.Encoding.CodePages.4.7.0\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
и HintPath
действительно есть. Аналогичные сомнения для всех остальных сообщений и ошибок. Еще один пример, почему он ищет FSharp.Core, Version=4.4.1.0
? Снова у меня есть
<ItemGroup>
<Reference Include="FSharp.Core">
<HintPath>..\packages\FSharp.Core.4.7.0\lib\net45\FSharp.Core.dll</HintPath>
</Reference>
в файле proj и в файле packages.config
<package id="FSharp.Core" version="4.7.0" targetFramework="net461" />
Все конфигурации, о которых я знаю, кажутся мне правильными, и все решение полностью соответствовало Visual Studio 2017. Проект был построен с использованием шаблона WebSharper, я не знаю, насколько это актуально, но я также переустановил WebSharper. VSIX, после обновления до Visual Studio 2019, и я не получал никаких ошибок. Помимо удаления и восстановления всех пакетов, просмотра файла .proj, очистки и повторной сборки решения, какие еще у меня есть варианты? На что еще мне посмотреть? Я знаю, что могу добавить переназначение в Web.config, но не думаю, что это решение (даже не обходной путь). К вашему сведению, через много часов мне удалось получить выпуск со множеством (странных) строк переназначения и путем ручного (!) Копирования некоторых файлов (включая FSharp.Core
) из пакетов в папку bin, что явно неприемлемо продолжить.