Eu tenho um aplicativo ASP.NET Core 3.0 preexistente, implantado com êxito em um Serviço de Aplicativo do Azure (usando o AspNetCoreModuleV2
módulo). Depois de atualizar o aplicativo para (versão de hoje do) ASP.NET Core 3.1 , o aplicativo cria e executa corretamente na minha versão local do IIS Express . Quando tento publicar no Serviço de Aplicativo do Azure usando (versão de hoje do) Visual Studio 16.4 , no entanto, recebo o seguinte erro:
O arquivo de ativos 'C: \ Project \ obj \ project.assets.json' não tem um destino para '.NETCoreApp, Versão = v3.0'. Verifique se a restauração foi executada e se você incluiu 'netcoreapp3.0' no TargetFrameworks do seu projeto.
Notas
- Tudo
<PackageReference>
é paraMicrosoft.AspNetCore
,Microsoft.EntityFrameworkCore
eMicrosoft.Extensions
foram atualizados para3.1.0
- Limpei minha solução e até coloquei uma nuked na minha
obj
pasta para garantir que não haja referências remanescentes. - Este erro está sendo gerado a partir da
3.1.100
versão deMicrosoft.PackageDependencyResolution.targets
.
Percebo que algo ainda está pendurado nas dependências do .NET Core 3.0 . Mas não está claro por que isso está causando problemas apenas durante a implantação. O Serviço de Aplicativo do Azure ainda não está pronto para o .NET Core 3.1 ? Ou isso é um problema com os objetivos de resolução de dependências?
fonte
asp.net-core-3.1
. Eu não tinha a reputação necessária para criar uma nova tag.<TargetFramework>
configuração nopubxml
perfil que Visual Studio conta com, que eu espaçadas por diante. Opa! Alterar isso paranetcoreapp3.1
corresponder aocsproj
destino resolve o problema imediato. (Isso introduz um novo problema com o próprio Serviço de Aplicativo do Azure disparando no destino, mas isso provavelmente pode ser resolvido usando uma implantação independente, semelhante ao link que você forneceu.) Obrigado por me indicar a direção certa!Respostas:
A questão imediata - como identificada na pergunta original - tem a ver com a existência de dois lugares onde
<TargetFramework>
está definido:csproj
)pubxml
)Eles
<TargetFramework>
devem ser atualizados nos dois locais e devem corresponder exatamente . Caso contrário, a publicação não será capaz de encontrar seus alvos noproject.assets.json
arquivo, que é construído com base no<TargetFramework>
nocsjproj
arquivo.Editor de texto
Para fazer essa modificação através de um editor de texto,
~/Properties/PublishProfiles
pasta*.pubxml
você deseja editar.<TargetFramework>
paranetcoreapp3.1
:Visual Studio 2019
Para fazer essa modificação através do IDE do Visual Studio 2019 ,
netcoreapp3.1
, clique no ícone de edição ao lado dele.netcoreapp3.1
.Mais uma vez, obrigado a @PanagiotisKanavos por me indicar a direção certa (ver comentários no tópico original).
fonte
pubx
arquivo, como você explicou, ele ainda estava no 3.0. Muito frustrante. Honestamente, não tive nada além de bugs e problemas estranhos, obscuros e completamente parados, desde que o VS 16.3 e o .NET Core 3.0 foram lançados. Obrigado novamente!HTTP Error 500.30 - ANCM In-Process Start Failure
mensagem da minha mensagem original. Anteriormente, isso exigia a publicação de uma distribuição totalmente independente do seu aplicativo. (Dito isso, geralmente há um intervalo de 2 a 3 dias entre uma nova versão do .NET Core cair e ser integrada ao ambiente do Serviço de Aplicativo do Azure , portanto, é útil estar ciente em futuras atualizações.)Abra a pasta Projeto;
Abra o arquivo FolderProfile.pubxml e altere a versão 3.0 para 3.1
netcoreapp3.1
Por fim, reconstrua seu aplicativo antes de publicar
fonte
pubxml
arquivo manualmente, e especialmente considerando a idiotice de modificar esses valores por meio da GUI do Visual Studio 2019 . Incorporei esses detalhes à minha resposta original, para que esta opção seja explicada explicitamente. Obrigado!mudança
funciona para mim.
fonte
Microsoft.AspNetCore
bibliotecas devem ser atualizadas3.1.0
, conforme as notas de versão da Microsoft v3.1. Sua abordagem pode ser uma correção válida para problemas semelhantes no ASP.NET Core 2.2 , supondo que o erro não tenha sido causado por uma incompatibilidade entre vocêcsproj
e ospubx
arquivos, como no meu caso.