web-dev-qa-db-ja.com

「公開」ターゲットは、ターゲットフレームワークを指定しないとサポートされません

Visual Studio 2017を使用して、.NETFrameworkを使用してASP.NETCoreサイトを作成しました。 (私はproject.jsonを持っていません、私は.cprojのVS2017プロジェクトを持っています)

私のターゲットはx64Windows2008R2です。私の.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):エラー:「公開」ターゲットはターゲットフレームワークを指定しないとサポートされません。現在のプロジェクトは複数のフレームワークを対象としています。公開されたアプリケーションのフレームワークを指定してください。

オンラインで解決策を探していると、同じ問題を抱えている人に出くわしましたが、実際には多くのターゲットがありますが、私の場合、なぜそれが得られるのかわかりません。

何か案は?

10
Adam

.csprojテンプレートに変更がありました( https://github.com/dotnet/sdk/issues/251 )。 <TargetFrameworks>の代わりに<TargetFramework>を使用する必要があります。

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