Share via


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.

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.