1

我正在创建一个使用 Roslyn 进行代码分析的自定义 MSBuild 任务。我读到您不能调用 Workspace.LoadStandAloneProject,而必须使用 Workspace.LoadProjectFromCommandLineArguments。

好的,但是我应该为第二个参数(语言)指定什么?这是一个字符串,而不是枚举,并且在整个互联网上都没有信息。我试过“cs”、“c#”、“CSharp”、“vb”、“vb.net”,然后我放弃了猜测。我总是收到错误消息:“不支持语言'...'。”

它真的有效吗?C# 的正确字符串是什么?

4

2 回答 2

2

使用LanguageNames.CSharp.

顺便说一句 - 制作这样一个构建任务的样本已经在我的待办事项列表上很长时间了。如果您可以发布基本代码(没有您的具体分析)一旦您开始工作,那将不胜感激!

于 2013-03-10T15:56:52.473 回答
1

经过大量的 ildasm-ing 我找到了它。

  • “C#”(区分大小写,大写“C”)
  • “Visual Basic”(也区分大小写)

您可以在 Roslyn.Services.CSharp.CSharpProjectFileLoaderService::get_Language() 和 Roslyn.Services.VisualBasic.VisualBasicProjectFileLoaderService::get_Language() 的反汇编中找到它

于 2013-03-10T21:16:31.857 回答