有条件地更改目标框架版本

2023-12-05

我正在尝试将 #ifdef'd 代码库编译到两个不同的目标框架,即 3.5 和 4.0。

我尝试修改解决方案中的 .proj 文件但无济于事。

看来 MSBuild / VS2012 没有通过 UI 获取解决方案配置更改。

这是 .proj 文件之一的片段:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>..\Binaries\</OutputPath>
    <DefineConstants>TRACE;NET35</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug 40|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>..\Binaries\</OutputPath>
    <DefineConstants>TRACE;DEBUG;NET40</DefineConstants>
    <DebugType>full</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>

当我从“发布”切换到“调试 40”时,目标框架在项目属性中不会更改(因此由于其他条件引用的程序集而中断编译)。

我在有条件地引用不同程序集时也遇到问题,就好像 VS/MSBuild 没有选择解决方案配置(有些甚至没有出现在引用中)。

编辑:我使用以下行从 v3.5 版本中排除 Microsoft.CSharp:

<Reference Include="Microsoft.CSharp" Condition=" '$(Configuration)' == 'Debug 40'" />

到目前为止,似乎只是 TargetFrameworkVersion 属性被忽略。


事实证明问题是双重的:

  • ReSharper (v7) 通过显示不同文件中的编译错误使事情变得更加困难,从而使人们更难意识到代码实际上是使用条件引用编译的。我认为版本 7 不支持手动更改项目文件,因此请注意 RS7 用户。
  • VS2012 没有更改 UI 中的目标框架(尽管在编译时实际上使用了正确的框架,如 MSBuild 的详细输出所示)。

我最终设法以一点耐心编译了代码库。 根据@granataCoder的建议,最好保留不同的输出路径(在处理条件编译等正交问题时可能很容易被忽视)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有条件地更改目标框架版本 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern

随机推荐

  • Java 7u55 Eclipse 系统片段类加载器

    在以前版本的 Java 中 我能够使用具有大量系统包的片段来为引导类加载器提供类 在我的特定情况下 这是为了支持在 Eclipse 中使用 Jacorb 在 Java 7u55 之前 这一切都运行良好 我创建了一个 osgi 片段 其中包含
  • Oracle 的 Dataframe 创建具有区分大小写列的表

    火花 2 1 1 我正在拯救我的dataframe as an Oracle表 但生成的 Oracle 表有 区分大小写 列 val properties new java util Properties properties setPro
  • RapidMiner 在 Java 应用程序中的集成

    我在 RapidMiner 中有一个文本分类过程 它从指定的Excel表格中读取测试数据并进行分类 我还有一个小型 Java 应用程序 它正在运行这个进程 现在我想在我的应用程序中创建文件输入部分 以便每次我都能够从我的应用程序 而不是从
  • 沿一个方向偏移多段线

    我正在寻找一种方法来偏移通过 xy 坐标在一个方向 在 R 中 定义的任意曲线 我可以使用 polyclip 包在两个方向上偏移曲线 library polyclip gt polyclip 1 10 0 built from Clippe
  • 为什么哈希图查找是 O(1) 即常数时间?

    如果我们从 Java 的角度来看 那么我们可以说 hashmap 查找需要恒定的时间 但内部实施又如何呢 它仍然需要在特定的存储桶 哪个键的哈希码匹配 中搜索不同的匹配键 那么为什么我们说哈希图查找需要恒定的时间呢 请解释 在对所使用的哈希
  • 闪亮的 Favicon 使用 URL 但不使用本地文件路径

    我正在尝试向我的 R Shiny 应用程序添加一个图标 并且我想使用本地图像文件 以便它可以在没有互联网连接的情况下运行 使用埃姆斯给出的例子here我有一个程序 当它使用 NOAA 徽标的 url 时 它将显示网站图标 但是 当我将该确切
  • Delphi 中的这些 Windows API 签名有什么区别?

    在 Delphi 中查看 Windows pas 我发现有几个签名 LoadLibrary A or W 用于加载特定模块 它们之间有什么区别 我是否可以相信始终为所有类型的 Windows 平台调用 LoadLibrary Windows
  • c# GDI+,在循环中创建 LinearGradientBrush(内存泄漏)

    今天我遇到了一个两难的境地 我创建了一个使用 GDI 在表单上绘图的应用程序 每秒由计时器触发绘图 draw 方法使用 for 循环来迭代对象集合 如果它们处于某种状态 则绘制它们 我想使用 LinearGradientBrush 来绘制它
  • 使用服务别名进行依赖注入

    在我的应用程序中 我有短信服务 该服务是一个简单的 POPO 它采用驱动程序的实例来执行实际的 SMS 功能 想象一下我有两个司机 mock driver and gateway driver它们在中被定义为类似的东西services部分
  • 在 r 中重组数据:reshape、dcast、melt...似乎对此数据框不起作用

    这是我导入的数据帧的前几行的示例 在完整数据集中 主题变量总共有五个级别 因子 其他两个是代数 II 和几何 SID firstName lastName subject sumScaleScore sumPerformanceLevel
  • Powershell:从同一对象中引用另一个对象属性中的对象属性?

    晚上好 各位 只是一个小问题 是否有可能 我知道我可以通过将其称为空对象然后一一添加属性来做到这一点 Obj New Object PSObject Obj name hello Obj type Obj name world 有没有办法将
  • 如何访问文档文件夹

    我已将所有日志重定向到应用程序文档文件夹中的文件 我知道如何通过 xcode 访问它 我必须将我的 ipad 连接到 MAC 并在 xcode 中通过 Organizer gt device 我可以访问文档文件夹 现在我想在没有 xcode
  • 如何有效地查找 Firebase 中一组节点是否包含另一组节点中包含的元素?

    我正在构建一个社交媒体数据库架构 其中有用户 关注者 标签和帖子 为了符合 firebase 模型 我按照 firebase 文档中的建议展平了结构 如下所示 我遇到的问题是 当用户选择一个标签并看到 tagPosts 表中的一堆帖子均与返
  • INT 数据库字段与 VARCHAR 类型的比较

    我有以下存储过程 没有编写完整的存储过程 但其中一些是 course int null SET query query Where course id cast course as varchar 我想知道我何时将 course 转换为 V
  • 使用 Watir 将多个文件传递到输入节点(使用 Ruby)

    所以我遇到了一些障碍 我正在尝试自动化一个测试用例 其中我需要将多个文件传递到输入节点 但我不知道如何执行此操作 我可以使用 Mechanize 或 Watir 但在自动化领域似乎相对重要的主题上发现的信息很少 在下面的代码片段中 我将 W
  • 回调还是承诺? [复制]

    这个问题在这里已经有答案了 在使用 javascript 异步错误捕获机制时 我最终问自己使用 Promise 与回调有什么区别 除此之外 Promise 可能是更糖化的语法 例如 让我们考虑 function setPromise var
  • SQL 更新、删除和插入同时进行

    我只是对某件事感到好奇 假设我有一个表 我将更新该值 然后删除它 然后插入一个新的 1 如果我以这种方式编写编码 这将非常容易 UPDATE PS EMAIL ADDRESSES SET PREF EMAIL FLAG N WHERE EM
  • 不要将 Android 上下文类放置在静态字段中;这是内存泄漏

    我有一项服务有BeaconNotificationsManager 我想访问这个BeaconNotificationsManager in my Activity 目前我的BeaconNotificationsManager is stat
  • 为什么我不能使用密集排名作为 SQL“排名分数”?

    我正在使用 SQL 中的 dendense rank 函数来解决 leetcode 的 排名分数 问题 https leetcode com problems rank scores description select Score den
  • 有条件地更改目标框架版本

    我正在尝试将 ifdef d 代码库编译到两个不同的目标框架 即 3 5 和 4 0 我尝试修改解决方案中的 proj 文件但无济于事 看来 MSBuild VS2012 没有通过 UI 获取解决方案配置更改 这是 proj 文件之一的片段