Errore generato quando il progetto eseguibile fa riferimento a un file eseguibile non corrispondente

In genere, un progetto eseguibile fa riferimento a progetti di libreria, non ad altri progetti eseguibili. Un progetto eseguibile può anche fare riferimento a un altro progetto eseguibile per usare le API definite in esso. Alcuni sviluppatori vogliono fare riferimento a un progetto eseguibile da un altro progetto eseguibile in modo che entrambe le app siano inserite e siano eseguibili dalla stessa cartella di output. Tuttavia, questo scenario non funziona se un file eseguibile indipendente fa riferimento a un eseguibile non indipendente o viceversa. A causa del funzionamento dell'host dell'applicazione, nessuna delle due app può essere avviata. Per evitare situazioni in cui le app non sono eseguibili, .NET SDK 5+ genera errori in fase di compilazione NETSDK1150 e NETSDK1151 quando rileva riferimenti eseguibili non corrispondenti.

Descrizione delle modifiche

Nelle versioni precedenti di .NET SDK è possibile fare riferimento a un progetto eseguibile indipendente da un progetto eseguibile non indipendente senza errori di compilazione. Tuttavia, entrambe le app non sarebbero eseguibili. A partire da .NET SDK 5, viene generato un errore se un progetto eseguibile fa riferimento a un altro progetto eseguibile e i valori SelfContained non corrispondono.

Versione introdotta

.NET SDK 5.0.300

Motivo della modifica

Gli errori sono stati introdotti per evitare situazioni in cui si prevede di poter avviare entrambe le applicazioni, ma ciò non è possibile.

Se il progetto a cui si fa riferimento non deve essere eseguito dalla cartella di output, è possibile impostare una proprietà per evitare questo controllo degli errori:

<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>

Per altre informazioni, consulta ValidateExecutableReferencesMatchSelfContained.

API interessate

Nessuno.