c# - 使用 Roslyn 的编译时源代码修改

标签 c# .net msbuild roslyn

是否可以在 CI 服务器上的 MSBuild 任务中使用 Roslyn 在编译之前修改源代码?我已经成功地在 VS 中完成了我想做的事情,但我想知道在 VS 之外是否有可能。目前我正在查看 Workspace API 和 Compiler API,它们似乎是实现这一目标的正确工具,但我仍然不确定这是否可能?特别是我担心返回我对 MSBuild 所做的更改以允许它继续其工作。

最佳答案

这绝对是我们正在考虑的场景。今天有几个问题让它变得有点困难:

  1. 您不能使用 Workspace API 加载项目/解决方案,因为您已经在 msbuild 中。
  2. 要使用常规编译器 API,您需要自己构建一个编译器,这可能是一大堆工作。

将来,我们希望提供“从 csc/vbc 命令行字符串创建工作区”,这将使这变得容易得多。

看看Hooking into the compiler (csc.exe or vbc.exe) itselfProblem with using Roslyn in a MS Build Task以前的一些讨论。

关于c# - 使用 Roslyn 的编译时源代码修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328700/

相关文章:

c# - Microsoft.VisualStudio.TestTools.UITesting,版本=14.0.0.0

C#函数无法返回——阻止编译器警告

c# - 创建数据表

c# - NHibernate Validator - 传递资源管理器和 key

c# - 从流中更改图像大小

c# - 使用 AppDomain.CreateInstance 时实例的包装器是什么?

iis - 转换时Msbuild不会复制web.config文件

windows - Cordova 在 Windows 10 和 VisualStudio 2017 上构建窗口

msbuild - 如何使用 MSBuild 构建 Xamarin iOS 应用程序?

c# - 使用 LINQ 将列表拆分为子列表