2017-04-10 204 views
4

使用Visual Studio 2017,我使用.NET Framework创建了ASP.NET Core网站。我没有project.json,我有一个VS2017项目.cproj未指定目标框架,不支持“发布”目标

我的目标是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文件(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Sdks \ Microsoft.NET.Sdk \ buildCrossTargeting \ Microsoft.NET.Sdk.targets(31,5):错误:不支持'Publish'目标,未指定一个目标框架。当前的项目以多个框架为目标,请为已发布的应用程序指定框架。

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

任何想法?

回答

8

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

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

哇。永远不会发现没有你的帖子。 –

+0

此信息现在可能已过时。我相信'TargetFrameworks'(复数)已经复出。请参阅:https://stackoverflow.com/questions/42747977/how-do-you-multi-target-a-net-core-class-library-with-csproj – tjrobinson

+1

@tjrobinson你应该使用'TargetFrameworks',如果你需要支持多于一个的框架,否则使用'TargetFramework'或者当运行应用程序时你会看到'Your project targets multiple frameworks.' error(像'dotnet run') – Set