Системные сборки не найдены для. Net v3.5 при запуске нового проекта или попытке открыть существующий - PullRequest
1 голос
/ 13 апреля 2020

, когда я пытаюсь открыть существующий проект, который нацелен. Net 3.5 или создать новый, который нацелен на него, Visual Studio не может найти некоторые. Net Сборки Framework: enter image description here

Как видите, System, System.Data, System.Drawing, System.Runtime.Serialization и System.Xml не найдены.

Ошибки, которые я получаю при сборке выглядеть примерно так:

Warning MSB3267 The primary reference "System", which is a framework assembly, could not be resolved in the currently targeted framework. ".NETFramework,Version=v3.5". 
To resolve this problem, either remove the reference "System" or retarget your application to a framework version which contains "System".  

Если я перенаправлю проект на что-то вроде. Net v4.5, то все сборки найдены, но мне нужно собрать его с v3.5 в качестве цели.

Что я пытался решить проблему: 1) Я убедился, что .Net3.5 включен в Windows Особенности: enter image description here

2) Я убедился В Visual Studio установлены средства разработки 3.5: enter image description here

3) Я пытался установить вручную. Net v3.5 из установочного файла microsoft

Ни один из этих шагов до сих пор не помог. Я попытался найти эти отсутствующие библиотеки вручную и нашел их в различных подпапках C:\Windows\Microsoft.NET\Framework, в основном в C:\Windows\Microsoft.NET\Framework\v2.0.50727.

Какой правильный способ исправить это? Как мне указать VS на сборки? Что-то не так с моей настройкой?

Версии программного обеспечения: Visual Studio Community 2019 v16.53, Windows 10 Pro с некоторыми бесплатными sh обновлениями

1 Ответ

0 голосов
/ 15 апреля 2020

После расспросов мне сказали, что это старая и известная ошибка в msbuild, которая имеет довольно много возможных способов: https://github.com/microsoft/msbuild/issues/1333

Лично я пошел с кастомом FrameworkPathOverride: https://github.com/microsoft/msbuild/issues/1333#issuecomment -296346352 , ред. Я добавил это XML отскочил к моему .csproj, который работал как шарм:

<PropertyGroup>
  <FrameworkPathOverride Condition="'$(TargetFramework)' == 'net35'">$(MSBuildProgramFiles32)\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Client</FrameworkPathOverride>
</PropertyGroup>

После этого выгрузить / загрузить проект, и я был хорош для go.

...