可执行项目引用不匹配的可执行项目时生成的错误

通常,可执行项目引用库项目,而不是其他可执行项目。 可执行项目还可以引用另一个可执行项目来使用其中定义的 API。 某些开发人员想要从另一个可执行项目引用可执行项目,以便将两个应用都置于同一个输出文件夹中并可从中运行。 但是,如果自包含的可执行项目引用非自包含的可执行项目,则此方案不起作用,反之亦然。 由于应用程序主机的工作方式,因此两个应用程序都无法启动。 若要防止应用无法运行的情况,.NET SDK 5+ 会在检测到不匹配的可执行项目引用时生成编译时错误 NETSDK1150 和 NETSDK1151。

更改说明

在以前的 .NET SDK 版本中,你可以从非自包含的可执行项目引用自包含的可执行项目,而不会出现生成错误。 但是,这两个应用将无法运行。 从 .NET SDK 5 开始,如果可执行项目引用另一个可执行项目且 SelfContained 值不匹配,则会生成错误。

引入的版本

.NET SDK 5.0.300

更改原因

引入错误是为了防止你期望能够启动这两个应用程序,但无法启动。

如果引用的项目无需从输出文件夹中运行,则可以设置一个属性来避免此错误检查:

<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>

有关详细信息,请参阅 ValidateExecutableReferencesMatchSelfContained

受影响的 API

无。