不指定目标框架不支持“发布”目标

Posted

技术标签:

【中文标题】不指定目标框架不支持“发布”目标【英文标题】:The 'Publish' target is not supported without specifying a target framework 【发布时间】:2017-04-10 10:27:55 【问题描述】:

使用 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】:

.csproj 模板 (https://github.com/dotnet/sdk/issues/251) 发生了变化。 你需要使用&lt;TargetFramework&gt;,而不是&lt;TargetFrameworks&gt;

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

【讨论】:

哇。如果没有你的帖子,永远不会发现。 此信息现在可能已过时。我相信TargetFrameworks(复数)已经卷土重来。见:***.com/questions/42747977/… @tjrobinson 如果你需要支持多个框架,你应该使用TargetFrameworks,否则使用TargetFramework 否则你会在运行应用程序时看到Your project targets multiple frameworks. 错误(如dotnet run)跨度> 为什么不能查看列表,看到您只列出了一个框架,然后按照TargetFramework 行事?

以上是关于不指定目标框架不支持“发布”目标的主要内容,如果未能解决你的问题,请参考以下文章

不支持将桥接头与框架目标一起使用

Project X 以框架“.NETStandard”为目标。实体框架包管理器控制台工具不支持此框架

导入简单的自定义 NuGet 包时出错:包不支持任何目标框架

不支持将桥接头与框架目标一起使用

模拟器不支持框架 - 制作虚拟框架

Cordova 10 不支持目标 SDK 版本