首页 > 解决方案 > 尝试使用 msbuild 构建和打包 net5 全局工具时出错

问题描述

我有一个带有目标框架 net5.0 的全局工具,我可以从 VS 构建和打包 nuget。但是从 msbuild 执行相同操作时会失败

msbuild 项目

  <Target Name="Build">
    <Exec Command="..\.nuget\nuget.exe restore $(NugetFolder)\SignalR.EventAggregatorProxy.AspNetCore.GlobalTool.csproj" />
    <MSBuild Projects="$(NugetFolder)\SignalR.EventAggregatorProxy.AspNetCore.GlobalTool.csproj" Properties="Configuration=Release;OutDir=$(NugetFolder)\out\"/>
  </Target>

Cs proj 我正在尝试构建

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <PackAsTool>true</PackAsTool>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <PackageReleaseNotes>
    </PackageReleaseNotes>
    <Version>5.2.266.0</Version>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="5.0.0" />
    <PackageReference Include="SignalR.EventAggregatorProxyCore" Version="5.2.265.0" />
  </ItemGroup>
</Project>

构建期间的错误消息

C:\Program Files\dotnet\sdk\5.0.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5): error NETSDK1005: Assets file 'C:\git\SignalR.EventAggregatorProxy3\ NugetOutput\obj\project.assets.json' 没有“net5.0”的目标。确保恢复已运行,并且您已在项目的 TargetFrameworks 中包含“net5.0”。[C:\git\SignalR.EventAggregatorProxy3\NugetOutput\SignalR.EventAggregatorProxy.AspNetCore.GlobalTool.csproj]

更新 执行 dotnet 构建工作,但我不知道它是否是首选方式?

  <Target Name="Build">
      <Exec WorkingDirectory="$(NugetFolder)" Command="dotnet build --configuration Release" />
  </Target>

标签: c#msbuild.net-5

解决方案


推荐阅读