我可以从 MsBuild Task 类中访问 MsBuildWorkspace 吗?

2023-11-30

据我了解,Roslyn 引入了工作空间的概念。工作区的一种实现是 MsBuildWorkspace。

我的问题是,我可以从自定义构建任务中访问代表正在构建的项目的 Roslyn 工作区吗?

我怀疑这就是MsBuildWorkspace 的目的。如果是这样,我可以从Execute我的自定义任务中的方法(源自Microsoft.Build.Utilities.Task)?

如果您想知道为什么,我需要遍历正在构建的项目的其他方面。 对我来说,访问任务的特定输入文件来生成输出是不够的。


我怀疑这就是MsBuildWorkspace的目的

No.
要点是MsBuildWorkspace是将 MSBuild 项目或解决方案解析为 Roslyn 工作区。

MSBuild 本身(实际运行 MSBuild 任务)根本不使用 Roslyn(它只是调用 C# 编译任务,该任务是使用 Roslyn 实现的),因此不存在现有的MsBuildWorkspace你可以取到的。

您可以创建自己的MsBuildWorkspace来自项目文件。

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

我可以从 MsBuild Task 类中访问 MsBuildWorkspace 吗? 的相关文章

随机推荐

  • Django FormWizard 动态改变 form_list

    我在使用表单向导时遇到了一些问题 也许有人可以解释一下 根据 process step 方法中的文档字符串 我可以 动态更改 self form list 因此 根据我的项目需求 我将表单附加到 form list 中 我附加的表格包含问题
  • 在外发电子邮件 EWS 中设置回复地址

    运行交换 2013 我在 C 服务中使用 EWS 该服务从服务帐户发送电子邮件 我想让电子邮件有一个与发送帐户不同的回复地址 即通讯组列表地址 我怎样才能做到这一点 这EmailMessage ReplyTo字段是只读的 Code Exch
  • Django 快捷方式嵌套外键

    假设我的 models py 中有以下内容 class Book pass class Part book models ForeignKey Book class Chapter part models ForeignKey Part n
  • 它不会创建 Java VM (JNI)

    我的简单命令行应用程序 int tmain int argc TCHAR argv JavaVM jvm JNIEnv env JavaVMInitArgs vm args JavaVMOption options 1 options 0
  • 扩展server_name(SNI扩展)不与jdk1.8.0一起发送,但与jdk1.7.0一起发送

    我已经使用 ApacheCXF v3 0 4 实现了 JAX WS 客户端 一切正常 但当我想使用 java 8 jdk1 8 0 25 的安全连接 SSL TLS 时 问题就出现了 我在日志中看到以下异常 Djavax net debug
  • 如何在未知输入类型下使用 cin?

    我有一个 C 程序 需要接受用户输入 用户输入要么是两个整数 例如 1 3 要么是一个字符 例如 s 我知道我可以像这样得到两个整数 cin gt gt x gt gt y 但是 如果输入的是 char 我该如何获取 cin 的值呢 我知道
  • 在 IIS Express 中配置最大请求数

    如何配置 IIS Express 中允许的最大请求数 我想将其更改为仅允许一些请求来测试超出限制时会发生什么 可以使用以下方式配置 IIS ExpressapplicationHost config文件 它位于 userprofile my
  • Java - 如何将 PDF 打印到特定打印机?

    我在 Windows 8 1 中有 5 台打印机 并且 PDF 文件不在本地系统中 而是在 PHP 服务器中生成的 问题 如何从服务器获取 PDF 文件并打印到特定打印机 我正在尝试使用 Apache PDFBox 2 0 0 EDIT i
  • 如何分解行? [复制]

    这个问题在这里已经有答案了 我有一个数据表 如下所示 cep3 lt structure list lat c 23 39429 23 39988 23 38233 23 39009 23 40135 23 4019 lon c 46 32
  • 替换 tel 或 telprompt 拨打电话

    我制作了一个应用程序 用于在按下按钮时呼叫预定义的号码 据我所知 在应用程序内拨打电话的唯一方法是使用 tel 或 telprompt 当我提交应用程序时 我收到了带有以下描述的拒绝 2 5 详情 您的应用程序使用或引用以下非公共 API
  • php中事件的含义

    我也知道php和nodejs 在javascript中我们有异步编程 所以我理解其中事件的含义 但是我看到了Yii 和 Zend 2 中的事件也使用它们 但我无法理解它的含义 它在 php 中如何工作以及它到底有什么作用 首先 PHP中没有
  • 如何读取Android设备上的CPU频率[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有没有 Java API 可以实现这一点 我怎样才能阅读这些信息 要在 Android 上获得频率 只需读取 sys 目录中的这些特殊文件 cat
  • 根据另一个日期选择器实例更改 jQuery 日期选择器中显示的月份

    我有两个日期选择器字段 一个是 开始日期 另一个是 end date 我想要一个功能 在用户选择 开始日期 然后是 end date 日历应默认显示包含 开始日期 反之亦然 如果用户首先选择end date 日历为开始日期应显示包含所选的月
  • Spring Boot 2.7.1 与 JSF 2.2 (Mojarra) 和 Primefaces 6.2.9 集成

    我已经使用下面的堆栈进行了工作设置 春季MVC 5JSF Mojarra 2 2 14Primefaces 6 2 9 该应用程序是作为 WAR 构建的 它具有配置了 FacesServlet 的 web xml 来服务 xhtml 请求
  • 转换字符(强制转换与 .getNumericValue)

    为什么casting int 可以正确地将符号的char转换为int 但是 Character getNumericValue someSymbolCharValue 不能 E g Character getNumericValue 即使
  • 使用 Jackson 进行自定义反序列化:扩展默认反序列化器

    我想通过扩展默认解串器并在其后设置更多值来制作自己的解串器 simplified code public class Dto public String originalJsonString public MyFooDto extends
  • Symfony 2,Twig:如何不转义字段值(与backbonejs和symfony 2一起使用)

    我正在使用以下代码渲染原型 form widget form get prototype myField attr value 骨干JS应该读取此树枝块生成的代码 并将 替换为某个模型属性值 这种情况不会发生 因为该值在 twig 中被转义
  • 为什么如果从另一个模块调用该模块,则改变模块会更新引用,但如果从自身调用则不会?

    这个问题涉及测试 javascript 和模拟函数 假设我有一个如下所示的模块 export function alpha n return n beta n n export function beta n return new Arra
  • 两相 Modelica Media 示例

    我正在尝试在 OpenModelica 中开发具有单一物质 液体或蒸汽 的流动模拟 Modelica Media Water 模型确实有两个阶段 但极其复杂 并且很难用完全不同的物质来重现 我想找到一个我可以使用的两相介质的简单示例 有一个
  • 我可以从 MsBuild Task 类中访问 MsBuildWorkspace 吗?

    据我了解 Roslyn 引入了工作空间的概念 工作区的一种实现是 MsBuildWorkspace 我的问题是 我可以从自定义构建任务中访问代表正在构建的项目的 Roslyn 工作区吗 我怀疑这就是MsBuildWorkspace 的目的