如果未指定目标框架

时间:2017-04-10 10:27:56

标签: msbuild asp.net-core publish visual-studio-2017 .net-4.6.2

使用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):错误:'发布没有指定目标框架,就不支持'target。当前项目针对多个框架,请指定已发布应用程序的框架。

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

有什么想法吗?

1 个答案:

答案 0 :(得分:19)

.csproj模板(Php Demo Code)发生了变化。 而不是<TargetFrameworks>,您需要使用<TargetFramework>

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