Erro gerado quando o projeto executável referencia executável incompatível
Geralmente, um projeto executável faz referência a projetos de biblioteca, não a outros projetos executáveis. Um projeto executável também pode fazer referência a outro projeto executável para usar APIs definidas nele. Alguns desenvolvedores desejam fazer referência a um projeto executável de outro projeto executável para que ambos os aplicativos sejam colocados e sejam executados na mesma pasta de saída. No entanto, esse cenário não funcionará se um executável independente referenciar um executável não independente ou vice-versa. Devido à forma como o host do aplicativo funciona, nenhum aplicativo pode ser iniciado. Para evitar situações nas quais os aplicativos não sejam executáveis, o SDK do .NET 5+ produz os erros em tempo de compilação NETSDK1150 e NETSDK1151 quando detecta referências a executáveis incompatíveis.
Descrição das alterações
Em versões anteriores do SDK do .NET, você poderia fazer referência a um projeto executável independente de um projeto executável não independente sem um erro de build. No entanto, ambos os aplicativos não seriam executáveis. A partir do SDK 5 do .NET, um erro será gerado se um projeto executável fizer referência a outro projeto executável e os valores SelfContained
não forem compatíveis.
Versão introduzida
SDK do .NET 5.0.300
Motivo da alteração
Os erros foram introduzidos para evitar situações em que você acredita poder iniciar ambos os aplicativos, mas na verdade não pode.
Ação recomendada
Se o projeto referenciado não precisar ser executável na pasta de saída, você poderá definir uma propriedade para evitar essa verificação de erro:
<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
Para obter mais informações, consulte ValidateExecutableReferencesMatchSelfContained.
APIs afetadas
Nenhum.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de