【问题标题】:MSBuild TargetFrameworkVersion = v4.5.1 targets .Net Framework v4.0MSBuild TargetFrameworkVersion = v4.5.1 目标 .Net Framework v4.0
【发布时间】:2016-04-22 05:15:05
【问题描述】:

我正在尝试为多个版本的 .Net Framework 构建项目

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release 4.5|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\net45</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release 4.5.1|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\net451</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>

当我使用 MSBuild 构建项目并在 dotPeek 中查看生成的程序集时,我得到以下结果

v4.0 给了我 .Net Framework v4.0
v4.5 给了我 .Net Framework v4.5
v4.5.1 给了我 .Net Framework v4.0

为什么定位 4.5.1 给了我 .Net Framework v4.0 我认为它至少会是 4.5,我错过了什么吗?

如果您需要更多信息,请告诉我!

【问题讨论】:

  • 这个问题缺少关键信息,IDE 不支持这种手帕。目标框架版本是每个项目的设置,而不是每个配置的设置。这是怎么发生的?您是手动编辑项目文件吗?这是如何准确构建的?您究竟在看什么来了解目标版本?
  • 我已经手动添加了具体配置,但没关系!如果我通过属性对话框将项目配置为目标 4.5.1,则会发生同样的事情。回答您的问题:我正在从命令行或 Visual Studio 使用 MSBuild 进行构建,结果相同。正如我所写,我正在使用 dotPeek。

标签: c# .net msbuild


【解决方案1】:

您可以尝试将此参数传递到您的构建中吗?

/p:TargetFrameworkVersion=v4.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-22
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 2017-09-29
    • 1970-01-01
    • 2011-05-07
    相关资源
    最近更新 更多