Ошибка возникает, когда исполняемый проект ссылается на несоответствующий исполняемый файл

Как правило, исполняемый проект ссылается на проекты библиотеки, а не на другие исполняемые проекты. Исполняемый проект также может ссылаться на другой исполняемый проект для использования API-интерфейсов, определенных в нем. Некоторым разработчикам требуется сослаться на исполняемый проект из другого исполняемого проекта, чтобы оба приложения размещались в одной и той же папке выходных данных и запускались из нее. Однако этот сценарий не работает, если автономный исполняемый проект ссылается на исполняемый проект, который не является автономным, или наоборот. Из-за способа работы узла приложения, ни одно приложение не может быть запущено. Чтобы предотвратить ситуации, когда приложения не запускаются, .NET SDK 5+ выдает ошибки времени компиляции NETSDK1150 и NETSDK1151 при обнаружении несоответствующих ссылок на исполняемые проекты.

Описание изменения

В предыдущих версиях пакета SDK для .NET можно было ссылаться на автономный исполняемый проект из исполняемого проекта, который не является автономным, и при этом не возникало ошибки сборки. Однако оба приложения нельзя было запустить. Начиная с пакета SDK для .NET 5, возникает ошибка, если исполняемый проект ссылается на другой исполняемый проект, а значения SelfContained не совпадают.

Представленные версии

Пакет SDK для .NET 5.0.300

Причина изменения

Ошибки были введены для предотвращения ситуаций, когда ожидается, что вы сможете запустить оба приложения, но это сделать не удается.

Если проект, на который указывает ссылка, не должен запускаться из папки выходных данных, можно установить свойство, которое поможет избежать этой проверки ошибок:

<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>

Дополнительные сведения см. в разделе ValidateExecutableReferencesMatchSelfContained.

Затронутые API

Нет.