【问题标题】:Output a Roslyn MSBuildWorkspace to different folder将 Roslyn MSBuildWorkspace 输出到不同的文件夹
【发布时间】:2020-05-10 15:43:12
【问题描述】:

执行时

mSBuildWorkspace.TryApplyChanges(solution);

Visual Studio 更改了解决方案。这意味着,如果我想输出到不同的位置,我需要先将整个解决方案复制到请求的目标,然后再进行处理。这很容易出错,因为解决方案可能具有指向依赖项的相对路径链接,在移动解决方案时可能会中断。

那么有没有办法告诉MSBuildWorkspace 将更改输出到与源不同的文件夹?

【问题讨论】:

    标签: c# roslyn roslyn-code-analysis


    【解决方案1】:

    没有对此的内置支持。

    选项#1:您可以调用Solution.GetChanges 来找出与最初加载的内容相比发生了哪些变化,然后调用各种方法来获取更改后的文档,而不是调用 TryApplyChanges自己应用编辑。这意味着您可以实际应用编辑 - 源文件编辑很容易(只需编写更新的文本),但如果您关心更复杂的事情,例如项目更改(添加/删除引用),您实际上并没有一种利用 MSBuildWorkspace 对此类事物的支持的方法。

    选项 #2: Roslyn 的开源,因此您必须自己修改 MSBuildWorkspace 以允许这样的重定向,这将使您有可能尝试重用一些更复杂的项目操作逻辑.或者你可以复制/粘贴应用的实现,然后使用 Solution.GetChanges 和重用的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      • 2012-07-13
      • 2020-10-05
      • 1970-01-01
      相关资源
      最近更新 更多