簡體   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