首页 文章

如果不指定目标框架,则不支持'Publish'目标

提问于
浏览
7

使用Visual Studio 2017,我使用.NET Framework创建了一个ASP.NET Core站点 . (我没有 project.json ,我有一个带有 .cproj 的VS2017项目)

我的目标是x64 Windows 2008R2 . 我的 .cproj 的开头看起来如下:

<Project Sdk="Microsoft.NET.Sdk.Web" ToolsVersion="15.0">
  <PropertyGroup>
    <TargetFrameworks>net462</TargetFrameworks>
    <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <PlatformTarget>x64</PlatformTarget>
    <OutputPath>bin\Debug</OutputPath>
    <DefineConstants>TRACE;DEBUG</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <PlatformTarget>x64</PlatformTarget>
    <OutputPath>bin\Release</OutputPath>
    <Optimize>True</Optimize>
  </PropertyGroup>
  ...

但是,虽然我只针对.NET 4.6.2,但当我尝试发布时,我收到此错误

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Sdks \ Microsoft.NET.Sdk \ buildCrossTargeting \ Microsoft.NET.Sdk.targets(31,5):错误:“发布”目标不指定目标框架时不支持 . 当前项目针对多个框架,请指定已发布应用程序的框架 .

在网上寻找解决方案的同时,我遇到了遇到同样问题的人,但他们确实有很多目标,但是,在我的情况下,我不确定为什么我会得到它 .

有任何想法吗?

1 回答

  • 18

    .csproj 模板(https://github.com/dotnet/sdk/issues/251)发生了变化 . 而不是 <TargetFrameworks> ,您需要使用 <TargetFramework>

    <PropertyGroup>
       <TargetFramework>net462</TargetFramework>
       <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
     </PropertyGroup>
    

相关问题