Я не могу запустить свои модульные тесты.
У меня следующая ошибка:
Ваш проект не ссылается на платформу .NETFramework, Version = v4.6.2. Добавьте ссылку на .NETFramework, Version = v4.6.2 в свойстве TargetFrameworks файла проекта, а затем повторно запустите восстановление NuGet.
В app.config
:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
В Project> Properties> Application> TargetFramework (.NET Framework 4.6.2)
Как я могу это исправить?
c#
unit-testing
mstest
csproj
.net-framework-version
Василь Ткачук
источник
источник
Ответы:
Пожалуйста, сделайте следующие шаги
источник
obj/
папки.У меня возникла аналогичная проблема, но с
v4.7.2
. А именно, я продолжал получать такое сообщение журнала сборки:Несмотря на то, что это выглядело похоже, ни один из предложенных выше шагов не помог мне. Я продолжал видеть это сообщение после каждой сборки. Казалось, ничто не могло помочь.
На самом деле проблема была связана с тем, что из-за миграции мне пришлось поместить два проекта в одну папку кода. Один из них был нацелен на .Net Core , другой - на .Net Framework , оба ссылались на одни и те же стандартные библиотеки .Net. Судя по всему, они используют ту же
obj
папку, в которую проекты Core помещаютproject.assets.json
файл. Собственно, именно этот файл мешает проекту Framework мешать его нормальной сборке. Кажется, даже если вы выполнили миграцию из packages.config в PackageReference ... что было рекомендовано как одно из возможных решений.Вы можете попытаться решить проблему, поместив следующий фрагмент в файл проекта Framework:
<Project> ... <PropertyGroup> <BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath> <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath> </PropertyGroup> ... </Project>
У меня сразу сработало, только потом, когда я внимательно прочитал, зачем он нам нужен и почему работает. Я неожиданно нашел его во второй части документа « Миграция образца приложения WPF на .NET Core 3» в разделе «Убедитесь, что проект .NET Framework все еще строится ».
BaseOutputPath
иBaseIntermediateOutputPath
переменные msbuild можно найти там, не уверен, хорошо ли они где-либо задокументированы.источник
Это случилось со мной при открытии проекта VS2015 в VS2017. Удаление
project.assets.json
изobj
папки сделало свое дело.В любом случае, Framework из сообщения отсутствовал в файле, но я не добавлял его туда, а удалил его.
источник
Я проголосовал за Ларису, но подумал, что было бы полезно узнать, как я попал в это. Я добавил в свою сборку стандартный файл проекта .net (мы нацелены на множество платформ), и он создал мусор, найденный в папке obj. Когда появилась сборка работоспособности Android, ее вырвало в папку obj. Моим решением было очистить эту папку перед сборкой. Это сложная проблема, потому что она прекрасно работала годами ... иголка встречается со стогом сена.
источник
В моем случае удалите
.pkgrefgen/
папку под папкой проекта, она содержит файл project.assets.json, который относится к старой структуре .netисточник
Я столкнулся с тем же самым с .net 4.71. В моем случае я просто перешел из packages.config в «ссылки на пакеты» для
Переход с packages.config на PackageReference
... и это устранило мою проблему. Что касается меня, я все равно собирался сделать это, поэтому, если вы уже идете по этому пути, я просто пропущу вышеуказанное и перейду к ссылкам на пакеты.
источник
Я использую очень старый проект .NET, и он работал нормально, пока внезапно не остановился. Обновление Visual Studio исправлено для меня ты.
источник