是否可以在 CI 服务器上的 MSBuild 任务中使用 Roslyn 编译之前修改源代码?我已经成功地在 VS 中做我想做的事,但我想知道在 VS 之外是否有可能。目前我正在研究工作区 API 和编译器 API,它们似乎是实现这一目标的正确工具,但我仍然不确定这是否可能?特别是我担心返回我对 MSBuild 所做的更改以使其继续工作。
问问题
2624 次
3 回答
10
这绝对是我们正在考虑的一个场景。今天有几个问题使它有点困难:
- 由于您已经在 msbuild 中,因此您无法使用 Workspace API 加载项目/解决方案。
- 要使用常规编译器 API,您需要自己构建一个编译,这可能是一堆工作。
将来,我们希望提供“从 csc/vbc 命令行字符串创建工作区”,这将使这更容易。
看一下Hooking into the compiler (csc.exe or vbc.exe) 本身和Problem with using Roslyn in a MS Build Task以了解之前的一些讨论。
于 2012-04-26T17:13:08.387 回答
3
关于在 MS Build Task 中使用 Roslyn 的问题,
public class MyTask : Task
将 Task 更改为 AppDomainIsolatedTask 是一种快速修复。我没有msdn帐户,所以我将在此处发布。希望它可以提供帮助。
于 2012-07-06T14:26:55.627 回答