Erreur générée lorsqu’un projet exécutable fait référence à un exécutable incompatible

En règle générale, un projet exécutable référence des projets de bibliothèque, pas d’autres projets exécutables. Un projet exécutable peut également référencer un autre projet exécutable pour utiliser des API qui y sont définies. Certains développeurs souhaitent référencer un projet exécutable à partir d’un autre projet exécutable afin que les deux applications y soient placées et puissent être exécutées à partir du même dossier de sortie. Toutefois, ce scénario ne fonctionne pas si un exécutable autonome fait référence à un exécutable non autonome, ou inversement. En raison du fonctionnement de l’hôte d’application, aucune application ne peut être lancée. Pour éviter les situations où les applications ne sont pas exécutables, le Kit de développement logiciel (SDK) .NET 5+ génère des erreurs de compilation NETSDK1150 et NETSDK1151 lorsqu’il détecte des références exécutables incompatibles.

Description de la modification

Dans les versions précédentes du Kit de développement logiciel (SDK) .NET, vous pouviez référencer un projet exécutable autonome à partir d’un projet exécutable non autonome sans erreur de build. Toutefois, les deux applications ne peuvent pas être exécutées. À compter du Kit de développement logiciel (SDK) 5 .NET, une erreur est générée si un projet exécutable fait référence à un autre projet exécutable et que les valeurs SelfContained ne correspondent pas.

Version introduite

Kit de développement logiciel (SDK) .NET 5.0.300

Raison du changement

Les erreurs ont été introduites pour éviter les situations dans lesquelles vous vous attendez à être en mesure de lancer les deux applications, mais vous ne l’êtes pas.

Si le projet référencé n’a pas besoin d’être exécuté à partir du dossier de sortie, vous pouvez définir une propriété pour éviter cette vérification des erreurs :

<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>

Pour plus d’informations, consultez ValidateExecutableReferencesMatchSelfContained.

API affectées

Aucun.