首页 > 解决方案 > 如何从复制还原或安装 Nuget 包然后粘贴到 *.csproj 文件?

问题描述

我正在使用 Microsoft Visual Studio Community 2019 Preview - Version 16.8.0 Preview 2.0、.NET Core 5.0.100-preview.8.20417.9、ASP.NET Core 5.0-preview Web API。原始文件*.csproj

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

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

</Project>

然后我添加(手动从另一个项目复制一部分)

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

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="AWSSDK.Polly" Version="3.5.0.5" />
    <PackageReference Include="ChilkatNativeLib" Version="9.5.0.83" />
    <PackageReference Include="HtmlAgilityPack" Version="1.11.24" />
    <PackageReference Include="HtmlAgilityPack.NetCore" Version="1.5.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.0-preview.8.20414.8" />
    <PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.0-preview.8.20414.8" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="5.0.0-preview.8.20414.8" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.0-preview.8.20407.4" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-preview.8.20407.4" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-preview.8.20407.4">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="5.0.0-preview.8.20414.8" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.0-preview.8.20419.1" />
    <PackageReference Include="MimeKit" Version="2.9.1" />
    <PackageReference Include="NAudio" Version="1.10.0" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="NUnit" Version="3.12.0" />
    <PackageReference Include="RestSharp" Version="106.11.5-alpha.0.18" />
    <PackageReference Include="SendGrid" Version="9.21.0" />
    <PackageReference Include="Serilog" Version="2.10.0-dev-01240" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />
    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="5.5.1" />
    <PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.5.1" />
    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="5.5.1" />
    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="5.5.1" />

    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.9" />

    <PackageReference Include="System.ServiceModel.Syndication" Version="5.0.0-preview.8.20407.11" />
    <PackageReference Include="System.Text.Encoding.CodePages" Version="5.0.0-preview.8.20407.11" />

  </ItemGroup>
</Project>

然后我跑

dotnet restore

但不是成功。

如何从复制然后粘贴到*.csproj文件中恢复或安装 Nuget 包?

标签: c#visual-studioasp.net-corenugetnuget-package

解决方案


如何从复制还原或安装 Nuget 包然后粘贴到 *.csproj 文件?

我认为这是带有 Net Core 5.0 的 Visual Studio Preview 16.8 的问题。

首先update-package -reinstall命令不能用于 Net Core 项目,它用于具有packages.config nuget 管理格式的 Net Framework 项目。

对于Net Core项目,您只需单击 build 即可恢复 nuget 包。

实际上,当您在Net Core 5.0项目上安装 nuget 包时,它会在全局 nuget 文件夹中成功恢复包。

你可以先删除下所有的nuget包C:\Users\xxx(current user)\.nuget\packages,然后重建你的项目。

软件包将全部还原到该文件夹​​下。

==================================================== ===================

但是,主要问题是:

对于Net Core 5.0, nuget 包没有名称和引用路径,尽管它可以在没有任何警告和错误的情况下恢复和构建。

在此处输入图像描述

虽然Net Core 3.1,其中有名称和完整的参考路径,以便 VS 可以找到它。

在此处输入图像描述

这就是出现黄色三角形的原因。并且不确定这种行为是否会影响您的发展。

并且名称路径是系统给定的,我们无法更改。

您可以尝试将您的项目从 更改Net Core 5.0Net Core 3.1,我相信大多数黄色三角形都会消失。

由于这是一个问题我已将其报告给我们的 DC 论坛

如果我没有详细描述问题,您可以投票或添加任何评论。我希望团队能够检查问题并尽快解决问题。


推荐阅读