【问题标题】:.NET 5.0 publish gives CS0006 dll could not be found for .NET Standard 2.0 dependency.NET 5.0 发布为 .NET Standard 2.0 依赖项提供 CS0006 dll
【发布时间】:2021-03-19 08:44:18
【问题描述】:

我有一个 .NET 5.0 项目 ProjectA,它依赖于一个 .NET Standard 2.0 项目 ProjectB。我可以毫无问题地构建和运行 .NET 5.0,包括其依赖项。这两个项目存储在同一个根文件夹中,并且仅依赖于默认配置,生成的库最终位于

ProjectB\bin\Release\netstandard2.0\ProjectB.dll
ProjectA\bin\Release\net5.0\ProjectA.dll

正如预期的那样。

如果我使用 VS Pro 2019 v16.8.6 UI 发布 .NET 5.0 项目,但是,使用发布配置文件

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <DeleteExistingFiles>False</DeleteExistingFiles>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <PublishProvider>FileSystem</PublishProvider>
    <PublishUrl>{{ my-url }}</PublishUrl>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <SiteUrlToLaunchAfterPublish />
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <ProjectGuid>{{ my-guid }}</ProjectGuid>
    <SelfContained>true</SelfContained>
    <PublishSingleFile>True</PublishSingleFile>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
</Project>

我最终得到了错误

CSC(0,0):错误 CS0006:找不到元数据文件“ProjectB\bin\Release\netstandard2.0\win-x64\ProjectB.dll”

发布之前的构建仍按预期构建ProjectB,但仍将其保留在netstandard2.0,而不是发布步骤正在查找的netstandard2.0\win-x64。我可以添加一个构建步骤来手动将构建的ProjectB 文件复制到win-x64,但这很笨拙。

有没有办法调整发布配置,以便在正确的位置查找依赖项?

与 StackOverflow 最相关的帖子是 this one,我们在不同的上下文中遇到了相同的问题,解决方案是在发布配置文件中删除 TargetFramework。这样做并不能解决我的问题。

有趣的是,dotnet publish -r win-x64(来自 .NET SDK (5.0.104))确定了在哪里查找 ProjectB 文件,这样就可以了,但似乎无法使用上面的 pubxml(参见 @987654322 @,这里给出的答案都不起作用)。

【问题讨论】:

    标签: .net .net-core visual-studio-2019


    【解决方案1】:

    更新 Visual Studio(从 16.8.6 到 16.9.2)修复了这个问题,所以这可能只是 Visual Studio 早期版本中的一个错误。

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-29
      • 1970-01-01
      • 2020-03-15
      • 2020-09-19
      相关资源
      最近更新 更多