Não consigo executar meus testes de unidade.
Tenho o próximo erro:
Seu projeto não faz referência à estrutura ".NETFramework, Version = v4.6.2". Adicione uma referência a ".NETFramework, Version = v4.6.2" na propriedade "TargetFrameworks" do seu arquivo de projeto e execute novamente a restauração do NuGet.
Em app.config
:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
Em Projeto> Propriedades> Aplicativo> TargetFramework (.NET Framework 4.6.2)
Como posso corrigir isso?
c#
unit-testing
mstest
csproj
.net-framework-version
Василь Ткачук
fonte
fonte
Respostas:
Por favor, dê os próximos passos
fonte
obj/
pastas.Eu experimentei um problema semelhante, mas com
v4.7.2
. Ou seja, continuei recebendo mensagens de log de compilação como esta:Apesar de parecer semelhante, nenhuma das etapas propostas acima funcionou para mim. Continuei vendo essa mensagem após cada construção. Nada parecia ser capaz de ajudar.
Na verdade, o problema estava relacionado a que, devido à migração, tive que colocar dois projetos em uma pasta de código. Um deles era voltado para .Net Core , outro para .Net Framework , ambos referenciados às mesmas bibliotecas .Net Standard. Aparentemente, eles compartilham a mesma
obj
pasta onde os projetos principais colocam oproject.assets.json
arquivo. Na verdade, exatamente este arquivo interfere no projeto do Framework impedindo sua construção normal. Parece que até mesmo se você executou Migrate from packages.config para PackageReference ... que foi recomendado como uma das soluções possíveis.Você pode tentar corrigir o problema colocando o seguinte snippet em seu arquivo de projeto do Framework:
<Project> ... <PropertyGroup> <BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath> <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath> </PropertyGroup> ... </Project>
Funcionou imediatamente para mim, só mais tarde, quando li com atenção por que precisamos e porque funciona. Eu o encontrei inesperadamente na parte 2 de Migrando um aplicativo WPF de exemplo para o .NET Core 3 na seção Garantindo que o projeto .NET Framework ainda seja compilado .
BaseOutputPath
eBaseIntermediateOutputPath
as variáveis msbuild podem ser encontradas lá, não tenho certeza se estão bem documentadas em qualquer lugar.fonte
Isso aconteceu comigo ao abrir um projeto VS2015 no VS2017. Excluir o
project.assets.json
daobj
pasta resolveu o problema.De qualquer forma, o Framework da mensagem estava faltando no arquivo, mas eu não o adicionei lá, fui excluí-lo.
fonte
Votei em Larissa, mas achei que seria útil saber como entrei nisso. Eu adicionei um arquivo de projeto padrão .net à minha construção (temos como alvo várias plataformas) e ele produziu os detritos encontrados na pasta obj. Quando a compilação de sanidade do Android surgiu, ela vomitou na pasta obj. Minha solução foi limpar essa pasta como uma etapa de pré-construção. Este é um problema difícil porque funcionou bem por anos ... agulha encontrar palheiro.
fonte
No meu caso, exclua a
.pkgrefgen/
pasta sob a pasta do projeto funciona, ela contém um arquivo project.assets.json que se refere ao antigo framework .netfonte
Encontrei a mesma coisa com o .net 4,71. No meu caso, simplesmente migrei de packages.config para "referências de pacote" por
Migrar de packages.config para PackageReference
... e resolveu meu problema. Para mim, eu faria isso de qualquer maneira, então se você já está indo por aqui, eu simplesmente pularia o acima e migraria para referências de pacote.
fonte
Estou usando um projeto .NET muito antigo e estava funcionando bem até parar de repente. Atualizar o Visual Studio corrigido para mim tu.
fonte