繁体   English   中英

新项目上的“dotnet pack”失败

[英]`dotnet pack` on a fresh project fails

我创建了一个新的 class 库(使用 VS2019)。 这是 CSProj:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <Authors>Itai</Authors>
    <Company>Company</Company>
    <Description>Test NuGet Package Creation using CLI</Description>
  </PropertyGroup>

</Project>

它只有模板中的Class1.cs文件:

using System;

namespace PkgTest
{
    public class Class1
    {
    }
}

但是当我运行dotnet pack.\PkgTest.csproj我得到这个:

PS C:\Users\itaib\source\repos\PkgTest\PkgTest> dotnet pack .\PkgTest.csproj
MSBuild version 17.3.0+92e077650 for .NET
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\Microsoft.CSharp.CurrentVersio
n.targets(317,5): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\M
SBuild\Current\Bin\amd64\Roslyn\Microsoft.CSharp.Core.targets" was not found. Confirm that the expression in the Import
 declaration "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\Roslyn\Microsoft
.CSharp.Core.targets" is correct, and that the file exists on disk. [C:\Users\itaib\source\repos\PkgTest\PkgTest\PkgTes
t.csproj]

(顺便说一句 - 当我尝试运行dotnet build.\PkgTest.csproj时也会发生同样的事情)

当在项目上使用 VS2019 右键单击菜单并选择“打包”时,将创建 package(或者当我单击“构建”时,项目将被构建),这意味着我拥有构建和创建 package 所需的所有工具。

我尝试调查错误,在磁盘上查找相关文件并导入它们,但没有任何效果。

运行dotnet --list-sdks返回:

3.1.422 [C:\Program Files\dotnet\sdk]
5.0.403 [C:\Program Files\dotnet\sdk]
5.0.408 [C:\Program Files\dotnet\sdk]
6.0.400 [C:\Program Files\dotnet\sdk]

知道如何解决这个问题吗?

更新

dotnet build -v diag.\PkgTest.csproj的 output 可以在这里找到: https://pastebin.com/RTtgWbZ1

你有一个环境变量集:

MSBUILD_EXE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe

删除此环境变量,它将解决您的问题。 它导致dotnet命令使用 Visual Studio 文件夹中的 msbuild 而不是其自己的文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM