Compartilhar via


Erro gerado quando o projeto executável faz referência ao executável incompatível

Em geral, 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 referenciar outro projeto executável para usar APIs definidas nele. Alguns desenvolvedores querem 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 autocontido fizer referência a um executável não autocontido, ou vice-versa. Devido à forma como o host do aplicativo funciona, nenhum aplicativo pode ser iniciado. Para evitar situações em que os aplicativos não são executáveis, o SDK do .NET 5+ produz erros de tempo de compilação NETSDK1150 e NETSDK1151 quando detecta referências executáveis incompatíveis.

Descrição da alteração

Nas versões anteriores do SDK do .NET, você poderia referenciar um projeto executável autossuficiente de um projeto executável não autossuficiente 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 SelfContained valores não corresponderem.

Versão introduzida

SDK do .NET 5.0.300

Motivo da alteração

Os erros foram introduzidos para evitar situações em que você espera poder iniciar ambos os aplicativos, mas não pode.

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.