c# - 将 Roslyn MSBuildWorkspace 输出到不同的文件夹
问题描述
执行时
mSBuildWorkspace.TryApplyChanges(solution);
Visual Studio 更改了解决方案。这意味着,如果我想输出到不同的位置,我需要先将整个解决方案复制到请求的目标,然后再进行处理。这很容易出错,因为解决方案可能具有指向依赖项的相对路径链接,在移动解决方案时可能会中断。
那么有没有办法告诉MSBuildWorkspace
将更改输出到与源不同的文件夹?
解决方案
对此没有内置支持。
选项 #1:代替调用 TryApplyChanges,您可以调用Solution.GetChanges来确定与最初加载的内容相比发生了哪些变化,然后调用各种方法来获取更改的文档并自己应用编辑。这意味着您可以实际应用编辑 - 源文件编辑很容易(只需编写更新的文本),但如果您关心更复杂的事情,例如项目更改(添加/删除引用),您真的没有一种利用 MSBuildWorkspace 对此类事物的支持的方法。
选项 #2: Roslyn 的开源,因此您必须自己修改 MSBuildWorkspace 以允许这样的重定向,这将使您有可能尝试重用围绕项目操作的一些更复杂的逻辑。或者您可以复制/粘贴应用程序的实现,然后使用 Solution.GetChanges 和重用代码。
推荐阅读
- wordpress - 在单元格中包含当前日期的整行突出显示或加粗字体
- android - Firebase 动态链接 PendingDynamicLinkData 返回 null android
- google-apps-script - 将电子邮件自动定向到 Google 表单提交上的特定地址
- python - 无法在另一个 Python 脚本中使用来自 Python 函数的属性
- laravel - 随时随地在 Laravel 中保存关系
- google-maps - 超出此 API 错误的请求配额
- python-3.x - Scrapy 不使用来自 settings.py 的参数
- android - 如何将当前触地的焦点从视图 A 切换到视图 B?
- c++ - 正态分布的逆生存函数和PPF(ICDF)?
- php - 使用 laravel 的 docx 文件下载系统 - vuejs