Обходной путь для Visual Studio 2019 v16.3 и выше, когда невозможно создать проект netcoreapp3.0 с помощью задач MSBuild netcoreapp3.0 - PullRequest
1 голос
/ 19 октября 2019

В последнее время я пытался отказаться от поддержки цели .NET Framework из многоцелевого проекта .NET Core 3.0 (первоначально поддерживаемые цели: netfx472, netcoreapp3.0 и netstandard2.1). В проекте используются пользовательские задачи MSBuild, которые нацелены на netfx472 и netcoreapp3.0 и загружаются в зависимости от того, какая цель построена.

При попытке удалить поддержку целей .NET Framework я удалил все цели netfx и удалил зависимость от пользовательскихзадачи, построенные с целью MSBuild netfx. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, несмотря на возможность создания проекта для целей .netcoreapp3.0 и netstandard2.1 из командной строки, любая попытка построить его с помощью Visual Studio 16.3.4 или новее или превью 16.4.2 не удалась из-забудучи не в состоянии загрузить пользовательские задачи MSBuild. Побочным эффектом этого является то, что Visual Studio не поддерживает подробный IntelliSense в проектах, которые были построены неправильно (IntelliSense сводится к элементарной форме, где поддерживаются только типы и локальные переменные - нет поддержки для более сложных функций: выбор элемента,помощники по выражению или синтаксису операторов. Кроме того, исправления кода перестают работать.)

Проблема, по-видимому, заключается в использовании Visual Studio NetFx для распространения MSBuild, который поставляется с Visual Studio вместо .NET Core для распространения MSBuild. предотвращает загрузку сборок пользовательских задач MSBuild, нацеленных на .netcoreapp3.0, во время инициализации VS.

Мне не удалось выполнить следующую проблему VS 2019 v16.3.4 и v16.4.prev2 не могут собрать netcoreapp3. 0 проектов, в которых используются пользовательские инструменты MSBuild, предназначенные для netcoreapp3.0 с проектом dotnet/project-system, однако, предложение для любого обходного пути будет с благодарностью, поскольку оно разблокирует мою работу.

1 Ответ

0 голосов
/ 24 октября 2019

Извините, но ответ может быть отрицательным, согласно информации от команды продукта, пользовательский msbuild task на основе .net core не поддерживается при создании .net core проектов.

Кажется, что долгопрежде чем эта функция сможет поддерживать чистый .net core, я предлагаю попробовать опубликовать запрос функции в DC , предложив опцию функции, это может ускорить процессmsbuild task поддерживает чистый .net core быстрее. Поделитесь ссылкой здесь, и мы, кто в ней заинтересован, проголосуют за вас, надеюсь, это поможет:)

...