在解决方案文件上调用自定义 MSBuild 目标

2024-03-09

我有一个解决方案文件(我的解决方案.sln)其中有一个项目(我的项目.vcxproj)。我想执行一个自定义目标(我的自定义目标)通过解决方案在我的项目上。它看起来像这样:

msbuild MySolution.sln /t:MyCustomTarget

当我执行命令时,我会收到一条错误消息:

MySolution.sln.metaproj:错误 MSB4057:项目中不存在目标“MyCustomTarget”。 [我的解决方案.sln]

您可以更换我的自定义目标与 Microsoft.Cpp.Win32.targets 中的任何标准目标(例如:ClCompile、Link)或您选择的任何其他目标(从 MyProject.vcxproj 中的 .targets 文件包含)一起使用。它们都不起作用。

当环境变量msbuildemitsolution设置为 1,我可以检查生成的MySolution.sln.metaproj文件。底部指定了 4 个目标:构建、重建、清理和发布。使用这些目标而不是我的自定义目标,项目构建正常。另外,如果我指定项目文件而不是解决方案文件,它也会构建:

msbuild MyProject.vcxproj /t:MyCustomTarget

但使用这种格式,我会失去OutDir属性,必须手动设置配置 and Platform,所以我失去了拥有解决方案文件的好处。

有什么方法可以将我的自定义目标与我最初想要的解决方案文件一起使用吗?

据我了解,问题是 msbuild 生成这个中间项目文件(mysolution.sln.metproj)但这将赢得来自的进口我的项目.vcxproj,包括 .targets 文件。难怪我的自定义目标不被识别。

我当前的解决方法是将项目文件与 msbuild 一起使用,并尽量不要错过解决方案文件中的任何内容:

msbuild MyProject.vcxproj /t:MyCustomTarget /p:Configuration=MyConfig;Platform=MyPlatform;OutDir=MySolution\Platform_MyConfig\

但这不是一个正确的解决方案,不灵活,容易出错,并且不会自动适应解决方案文件中的更改。


MSBuild 15 现在会自动将自定义目标提升到解决方案元项目中,因此直接在解决方案上运行目标的初始方法现在应该可以正常工作。

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

在解决方案文件上调用自定义 MSBuild 目标 的相关文章

随机推荐

  • 如何使用rails运行简单的MYSQL查询

    我想使用 Rails 运行一个简单的 MYSQL 查询 Select movie title movie director from moving order by rating desc limit 5 我不想要创建模型的所有开销 我只想
  • 元组 (a,b)=(b,a) 中的成员交换在内部如何工作?

    In 55 a 5 In 56 b 6 In 57 a b b a In 58 a Out 58 6 In 59 b Out 59 5 a 和 b 的值交换在内部是如何工作的 它绝对不使用临时变量 Python 将右侧表达式与左侧赋值分开
  • android-studio的sdk管理器中没有LLDB

    I am using android studio 3 6 3 in my Manjaro Linux I am trying to run c in android studio for that i need LLDB I reinst
  • ReactJS错误编译失败'define'未定义

    我尝试编译的应用程序未使用外部 jquery 及其关联的 JS 文件进行编译 当我尝试将这些文件链接到 ReactJS 应用程序中的 HTML 页面时 它会抛出以下错误 错误是 define 未定义 no undef 此错误来自 jquer
  • 改造,回调 204 无内容响应?

    在 Android 上 我最初实现了一个像这样的 Retrofit 界面 DELETE USER API BASE URL id public void deleteUser Path id String id Callback
  • 当同级项具有不同宽度时将 Flex 项居中[重复]

    这个问题在这里已经有答案了 我知道 Flexbox 为居中项目提供了一个很好的解决方案 但是当我有 3 个项目并且我希望中心 第二个 项目相对于窗口居中时 我遇到了一个问题 而不管其他 2 个项目的大小 在我的笔中 您可以看到第二项 客户索
  • eclipse neon - 忽略 json 错误

    我的项目中只有很少的 JSON 并将它们导入 Eclipse 后Neon我在文件 和项目 上看到红色标记 抱怨 JSON 问题 我的问题是如何禁用 跳过 忽略 Eclipse Neon 中的 JSON 错误 您可以在下面配置 JSON 验证
  • jquery 文档内部或外部的函数就绪

    到目前为止 我只是将所有 jQuery 优点都放在了 document ready 函数 包括某些用户交互中使用的简单函数 但是不需要加载 DOM 文档或仅在之后调用的函数可以放置在 document ready 以及 例如 考虑一个非常简
  • 在 Python 中使用 try- except-else 是一个好习惯吗?

    在 Python 中 我时常会看到这样的块 try try this whatever except SomeException as exception Handle exception else return something try
  • JPMS ServiceLoader 没有按预期为我工作

    JPMS服务加载器不符合我的预期 我正在尝试提供一个作为可执行 jar 的桌面程序使用默认服务 单个用户可能会超载 用户提供自己的服务类 并在命令行上将其名称作为参数给出 The service package eu ngong mySer
  • 使用 MySQL 通过 JOIN 获取 GROUP BY 中的 SUM

    我在 MySQL 5 1 38 中有两个表 products id name price department 1 Fire Truck 15 00 Toys 2 Bike 75 00 Toys 3 T Shirt 18 00 Clothe
  • 导轨 计数 选择不同的

    我正在记录用户观看一系列视频的次数 现在我正在尝试制作一个图表 显示每天观看任何视频的用户数量 UserVideoWatching where created at gt AND user id 1 month ago User eleph
  • tidytext、quanteda 和 tm 返回不同的 tf-idf 分数

    我正在尝试研究 tf idf 加权语料库 我希望 tf 是按文档划分的比例 而不是简单的计数 我希望所有经典文本挖掘库都会返回相同的值 但我得到了不同的值 我的代码中是否存在错误 例如 我是否需要转置对象 或者 tf idf 计数的默认参数
  • 迭代同步集合

    我在这里问了一个关于迭代 a 的问题Vector 我已经得到了一些好的解决方案的答复 但我读到了另一种更简单的方法 我想知道这是否是一个好的解决方案 synchronized mapItems Iterator
  • 在Python 3中编写一个函数将基数16转换为基数10

    有没有一种简单的方法来修改这段从基数 2 转换为基数 10 的代码 以将基数 16 转换为基数 10 我的目标是构建一个专用的转换函数 而不使用任何内置的 Python 功能进行计算 谢谢 BinaryVal int input Enter
  • ARC 中的“[[something keep] autorelease]”相当于什么?

    相当于什么 something retain autorelease in ARC 我遇到一个问题 类 DBRequest 调用我的委托来表示完成 然后 我的委托将 DBRequest 实例设置为 nil 即 dealloc 但是 当堆栈从
  • 双屏 HDMI 输出编程

    在我的搜索中 我发现 Android SDK 目前不支持控制 HDMI 端口活动和处理 HDMI 输出 尽管像摩托罗拉这样的某些设备制造商 不知道是否还有其他制造商也这样做 提供了 API 以实现更好的控制 下面是其中两个的链接 其中双屏链
  • 列出 Android 手机中所有已安装或支持的语言

    如何在 android 中以编程方式获取 语言和输入设置 下列出的所有已安装或支持的语言的列表 我已经使用了 Resources getSystem getAssets getLocales 但它只给了我该语言的代码 如 en en us
  • 如何将 Tomcat 嵌入到 Spring Framework MVC 应用程序中?

    我已经创建了所需的配置 控制器类 但我不清楚应该如何编排这些类来运行 tomcat 实例 我知道对于 Spring Boot 来说 这是使用 SpringApplication run 的问题 但我正在尝试探索 Spring Boot 之前
  • 在解决方案文件上调用自定义 MSBuild 目标

    我有一个解决方案文件 我的解决方案 sln 其中有一个项目 我的项目 vcxproj 我想执行一个自定义目标 我的自定义目标 通过解决方案在我的项目上 它看起来像这样 msbuild MySolution sln t MyCustomTar