【问题标题】:Instruct CodeDomProvider compiler to show errors and warning messages in English language?指示 CodeDomProvider 编译器以英语显示错误和警告消息?
【发布时间】:2015-09-19 12:49:29
【问题描述】:

我正在使用 System.CodeDom 功能在运行时编译代码,我想知道是否可以指定编译器参数或其他解决方法以 English 语言显示编译器错误,而不是使用系统的默认语言。

但是,在 MSDN 文档中,我找不到与显示语言相关的任何内容:

当我想在构建项目时在 Visual Studio IDE 下以特定语言显示编译器错误时,我所做的是更改当前文化,然后我尝试在我的应用程序中设置文化在我从我的应用程序编译的文件中,但首先它不会生效,其次我更喜欢避免这样的可能技巧,因为它可能需要自动生成代码(导入、引用和调用 @987654326 时的代码@编译器):

Thread.CurrentThread.CurrentCulture = New CultureInfo("en-Us")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-Us")

【问题讨论】:

  • 至少对于C#,你试过/preferreduilang开关吗?
  • 该选项对于 C# (VS2012) 来说是相对较新的。我没有 VB 的答案; /preferreduilang 作为条目显示在 VS2015 文档的 VB 中,但我不知道它是否有效并且我没有安装 VS2015 来尝试它。
  • @TnTinMn 不过它适用于 VS2015 附带的 VBC.EXE 编译器(不是 VS2013 附带的编译器)。
  • @Christian.K 已验证该开关适用于 VS2015 (.Net 4.6)。
  • CodeDom 在System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory 中执行编译器。你可以在Executor.cs, GetRuntimeInstallDirectory method)看到这个自己

标签: c# .net vb.net csharpcodeprovider vbcodeprovider


【解决方案1】:

您可能应该使用CompilerParameters.CompilerOptions 属性。如果您打开链接,您可能会在那里找到示例。您需要更改 preferreduilang 参数。要将输出语言设置为英语,请使用“/preferreduilang:en-US”选项。请记住,它不适用于您系统中未安装的语言。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 对不起,我想这有点误会。据我了解,我在回答中给出了重要的部分。 IE。我写了类名,属性名,应该设置哪个值以及应该满足哪个条件(系统中安装了语言)以确保它工作。链接仅包含一些附加信息。第一个包含代码 sn-p,可以用作示例。至于第二个,我同意没有必要,我只是将其删除,因为它不会增加任何价值。希望现在好多了。谢谢。
猜你喜欢
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多