【问题标题】:It is possible to use new csproj format to build for .NET Framework Client Profile?是否可以使用新的 csproj 格式为 .NET Framework Client Profile 构建?
【发布时间】:2019-02-07 08:32:30
【问题描述】:

我正在尝试手动更新一个新的 csproj 文件来为 .NET Framework 4.0 客户端配置文件配置构建。

这可以正常工作

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>NET40</TargetFrameworks>
  </PropertyGroup>
</Project>

但这会产生错误

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>NET40</TargetFrameworks>
    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
  </PropertyGroup>
</Project>
'project.assets.json' doesn't have a target for 
'.NETFramework,Version=v4.0,Profile=Client'. 
Ensure that restore has run and that you have included 
'net40-client' in the TargetFrameworks for your project.

是否可以使用新的 csproj 格式,例如 为 .NET Framework Client Profile 构建?

【问题讨论】:

  • 我是否尝试将“net40-client”添加到“TargetFrameworks”标签中,因为它显示错误?
  • 是的,我也试过这个变种。 &lt;Project Sdk="Microsoft.NET.Sdk"&gt; &lt;PropertyGroup&gt; &lt;TargetFrameworks&gt;net40-client&lt;/TargetFrameworks&gt; &lt;/PropertyGroup&gt; &lt;/Project&gt; 错误是“错误 NETSDK1013 无法识别 TargetFramework 值 'net40-client'。可能拼写错误。如果没有,则必须明确指定 TargetFrameworkIdentifier 和/或 TargetFrameworkVersion 属性。”除了执行条件构建,排除客户端配置文件框架不支持的所有功能之外,我现在没有看到其他方法。

标签: csproj


【解决方案1】:

这对我有用:

<TargetFramework>net40-client</TargetFramework>
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>

【讨论】:

    【解决方案2】:

    为此有一个包,您所要做的就是将csproj 的第一行替换为:

    <Project Sdk="MSBuild.Sdk.Extras/2.0.54">
    

    然后你有一些新的目标框架可用,例如net40-client,所以

    <TargetFrameworks>net40-client</TargetFrameworks>
    

    现在可以工作了。

    如果您想了解更多信息,请查看项目页面 (https://github.com/novotnyllc/MSBuildSdkExtras)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 2012-02-10
      • 2020-09-08
      相关资源
      最近更新 更多