将Roslyn MSBuildWorkspace输出到其他文件夹

问题描述 投票:0回答:1

执行时

mSBuildWorkspace.TryApplyChanges(solution);

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

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

c# roslyn roslyn-code-analysis
1个回答
0
投票

对此没有内置支持。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.