【问题标题】:The referenced project is a non self-contained executable. A non self-contained executable cannot be referenced by a self-contained executable引用的项目是一个非独立的可执行文件。非独立的可执行文件不能被独立的可执行文件引用
【发布时间】:2021-10-04 15:15:30
【问题描述】:

我在通过 Visual Studio 调试时将 SDK 更新到 .NET 6.0 预览后尝试编译我的 .netcore3.1 时遇到问题。

我的 CSProject 如下:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <UserSecretsId>f5884bc9-1eeb-1458-bba9-832ed8f4cd4e</UserSecretsId> 
    
</Project>

我的 dotnet sdk 已安装:

.NET SDK (reflecting any global.json):
 Version:   6.0.100-preview.5.21302.13
 Commit:    d6380bcae7

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.18363
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\6.0.100-preview.5.21302.13\

Host (useful for support):
  Version: 6.0.0-preview.5.21301.5
  Commit:  ec3e0b276b

.NET SDKs installed:
  1.1.14 [C:\Program Files\dotnet\sdk]
  2.1.519 [C:\Program Files\dotnet\sdk]
  2.2.104 [C:\Program Files\dotnet\sdk]
  3.0.103 [C:\Program Files\dotnet\sdk]
  3.1.300 [C:\Program Files\dotnet\sdk]
  5.0.301 [C:\Program Files\dotnet\sdk]
  6.0.100-preview.5.21302.13 [C:\Program Files\dotnet\sdk]

错误信息:

引用的项目是一个非独立的可执行文件。非自包含的可执行文件不能被自包含的可执行文件引用。

【问题讨论】:

    标签: c# asp.net .net .net-core


    【解决方案1】:

    根据the documentation,您的配置从未起作用,但您只有在尝试运行引用应用程序时才会发现:

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

    现在,您在构建时收到错误,因此您知道您需要修复一个或另一个项目,以便它们的“自包含性”匹配。

    请注意,如果您确定要混合 SelfContained 值,尽管存在潜在问题,您可以通过将 &lt;ValidateExecutableReferencesMatchSelfContained&gt;false&lt;/ValidateExecutableReferencesMatchSelfContained&gt; 添加到 .csproj 文件来禁用对该条件的检查。

    【讨论】:

    • 那么,什么是项目的“独立性”?.. 它是发布配置文件的属性,不是吗?
    • 他们似乎喜欢在每次进行重大更改时告诉我们“您的配置从未奏效”,即使之前一切正常。
    【解决方案2】:

    我对 .net 3.1 而不是 SDK5 有同样的问题。我认为他们已经修复了一些问题,因为我的应用程序在生产和测试中工作得非常愉快,现在抱怨这个问题。

    我将发布设置更新为依赖于框架,现在它可以按预期工作。当我保存文件时,Visual Studio 刚刚开始构建,而它从来没有这样做过。也许我会自动更新 VS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 2012-08-22
      • 1970-01-01
      相关资源
      最近更新 更多