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):エラー:「公開」ターゲットはターゲットフレームワークを指定しないとサポートされません。現在のプロジェクトは複数のフレームワークを対象としています。公開されたアプリケーションのフレームワークを指定してください。
オンラインで解決策を探していると、同じ問題を抱えている人に出くわしましたが、実際には多くのターゲットがありますが、私の場合、なぜそれが得られるのかわかりません。
何か案は?
.csproj
テンプレートに変更がありました( https://github.com/dotnet/sdk/issues/251 )。 <TargetFrameworks>
の代わりに<TargetFramework>
を使用する必要があります。
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>