【问题标题】:Migrating to .csproj SDK breaks import of dlls from nuget package迁移到 .csproj SDK 会中断从 nuget 包导入 dll
【发布时间】:2023-02-08 17:39:02
【问题描述】:

最近我尝试使用 .net upgrade assistant 将我的 .csproj 文件升级到 SDK 标准。最初它似乎工作并且我所有的 nuget 依赖项都出现了。

但是,当我尝试构建我的项目(目标为.net48)时,nuget 包中的 dll 未包含在输出目录中。我一直在网上寻找解决方案,但其中大多数似乎都表明它们应该存在。我遇到问题的具体包是RavenDB.Database v2.5.25041。它是需要这个特定版本的测试套件的一部分,所以很遗憾我不能升级它。除非 dll 存在于输出目录中(通过手动复制它们进行测试),否则测试也不会运行并抱怨缺少程序集。

在 SDK 迁移工作正常之前在项目上运行构建并且输出目录包含那些 dll。有谁知道为什么这在新版本中的工作方式不同,我该如何解决?

编辑:

这是转换后的.csproj文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net48</TargetFramework>
    <OutputType>Library</OutputType>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System.Data.Services.Client" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="EntityFramework" Version="6.4.4" />
    <PackageReference Include="RavenDB.Database" Version="2.5.25041" />
    <PackageReference Include="RavenDB.Embedded" Version="2.5.25041" />
  </ItemGroup>
</Project>

【问题讨论】:

    标签: c# .net nuget-package


    【解决方案1】:

    您能否详细说明您最初在.csproj 中拥有的版本?

    尝试添加 nuget 包时,您应该获得有关该过程的日志。你能把这个也包括在内吗?有关日志的更多详细信息:Does Nuget create an error log file when a package is installed?

    【讨论】:

    • 嗨,确切的版本是我在原始问题中指定的那个:2.5.25041 包添加得很好,我可以毫无问题地从源代码中引用它。当我尝试将项目作为依赖项运行然后尝试加载一些丢失的 dll 时,就会出现问题。如果有帮助,我已将 .csproj 文件添加到问题中。
    • 你能在转换前展示一下csproj吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2017-04-12
    • 1970-01-01
    • 2018-04-07
    相关资源
    最近更新 更多