无法在 Windows 10 机器上构建 IdentityServer4

Tom*_*gan 2 c# nuget identityserver4 minver

当我尝试构建 IdentityServer4 时,我收到错误消息“以代码 -532462766 退出”。该错误似乎发生在“MinVer”Nuget 包内。

我从https://github.com/IdentityServer/IdentityServer4的 github 站点将 IdentityServer4 zip 文件下载到 Windows 10 机器上,并将其解压缩到本地目录中,然后按照以下说明进行操作:

  1. 下载最新的 .Net Core SDK。我已经安装了最新的 sdk,但是在“MinVer”nuget 包(见下文)中出现错误后,我决定也下载几个旧版本。我的 C:\Program Files\dotnet 文件夹在“sdk”文件夹中包含以下子文件夹:

    • 2.1.202
    • 2.1.803
    • 2.2.108
    • 3.0.101
    • 3.1.100
    • 3.1.101
  2. 在根目录中运行 build.ps1。Build.ps1 执行 nuget 恢复,然后执行其他 5 个构建文件,内容如下:

$ErrorActionPreference = "Stop";

New-Item -ItemType Directory -Force -Path ./nuget

dotnet tool restore

pushd ./src/Storage
./build.ps1 $args
popd

pushd ./src/IdentityServer4
./build.ps1 $args
popd

pushd ./src/EntityFramework.Storage
./build.ps1 $args
popd

pushd ./src/EntityFramework
./build.ps1 $args
popd

pushd ./src/AspNetIdentity
./build.ps1 $args
popd
Run Code Online (Sandbox Code Playgroud)

当我运行 build.ps1 时,我看到“dotnet tool restore”成功更新了所有 nuget 包。

然后,对于所有 5 个 build.ps1 命令,我都会收到相同的“以代码 -532462766 退出”的错误消息,这是错误消息之一:

C:\Users\tregan.nuget\packages\minver\2.0.0\build\MinVer.targets(39,5):错误 MSB3073:命令“dotnet”C:\Users\tregan.nuget\packages\minver\2.0 .0\build../minver/MinVer.dll" --auto-increment "" --build-metadata "" --default-pre-release-phase "" --minimum-major-minor "" --repo "C:\Repo\Core\IdentityServer4-master\src\Storage\build" --tag-prefix "" --verbosity "" --version-override """ 退出,代码为 -532462766。[C:\Repo\Core\IdentityServer4-master\src\Storage\build\build.csproj]

我已经验证它正在寻找的路径都存在 (C:\Users\tregan.nuget\packages\minver\2.0.0\build, C:\Repo\Core\IdentityServer4-master\src\Storage\build\build .csproj)。

从错误消息中提取,似乎此命令失败:

dotnet "C:\Users\tregan.nuget\packages\minver\2.0.0\build../minver/MinVer.dll"

错误消息抱怨文件 MinVer.Targets,第 39 行。这指向文件的以下部分,这显然负责创建无法执行的命令:

    <Exec Command="dotnet &quot;$(MSBuildThisFileDirectory)../minver/MinVer.dll&quot; @(MinVerInputs->'%(Identity)', ' ')" ConsoleToMSBuild="true" StandardOutputImportance="Low" >
  <Output TaskParameter="ConsoleOutput" ItemName="MinVerConsoleOutput" />
</Exec>
Run Code Online (Sandbox Code Playgroud)

Tom*_*gan 5

这失败了,因为我的机器上没有安装 Git。

我通过运行 build.ps1 试图在命令提示符中执行的命令发现了这一点:

dotnet "C:\Users\tregan.nuget\packages\minver\2.0.0\build../minver/MinVer.dll"
Run Code Online (Sandbox Code Playgroud)

这给了我命令失败的错误消息,因为没有安装 Git。由于我安装了 Choclately,我只需要从以管理员身份运行的命令提示符运行它:

choco install git
Run Code Online (Sandbox Code Playgroud)

您可能需要刷新您的环境变量(如果您正在使用,请关闭/重新打开 Visual Studio):

refreshenv
Run Code Online (Sandbox Code Playgroud)