是否可以在CI服务器上的MSBuild任务中使用Roslyn在编译前修改源代码?我已经成功地在VS中做了我想做的事情,但我想知道在VS之外是否有可能。目前我正在研究Workspace API和Compiler API,它们似乎是实现这一目标的正确工具,但我仍然不确定这是否可能?特别是,我关心的是如何将我对MSBuild所做的更改返回,以使其能够继续其工作。
发布于 2012-07-06 22:26:56
关于 Problem with using Roslyn in a MS Build Task上的问题,
public class MyTask : Task
将任务更改为AppDomainIsolatedTask是一种快速修复方法。我没有msdn帐号,所以我就把它贴在这里。希望能有所帮助。
发布于 2012-04-26 20:11:44
我个人还不能测试这个(所以如果你愿意,把这个“答案”当作一个评论),但是阅读关于Roslyn的东西,特别是this博客条目,它看起来应该是possible (寻找“重写”段落)。
显然,您可以从源代码构建语法树(我想对于编译器来说并不太奇怪),然后使用API对其进行修改,最后将其写回字符串/文件或其他任何内容。
另请参阅概念上关于Roslyn语法树的MSDN,以及关于“语法转换”的walkthrough。
https://stackoverflow.com/questions/10328700
复制相似问题