我们遇到了这里描述的问题:field-not-found-exception-with-net-4-4-5-compiled-regexes
简而言之:我尝试在已更新到 .Net 4.5 的机器上构建 .Net 4.0 程序集。所以我的目标是.Net 4.0。尝试在仅安装了 .Net 4.0 的机器上运行此程序集时,出现以下异常:找不到字段:'System.Text.RegularExpressions.Regex.internalMatchTimeout'。
如果我在尚未更新到 .Net 4.5的机器上构建相同的程序集,我可以在 .Net 4.0 机器上运行生成的程序集而不会出现任何问题。换句话说:在 .Net 4.5 机器上生成的 .Net 4.0 程序集与在.Net 4.0 机器上生成的程序集不同。
该程序集提供预编译的正则表达式。
我可以通过以下方式解决这个问题:
- 在 .Net 4.0 系统上构建 de 汇编。
- 将目标机器升级到 .Net 4.5。
然而,这两种解决方案都存在问题:
- 我们为各种目标构建程序集,包括 WinRT。我们现在面临的问题是我们不能使用一台机器来构建所有这些,这使我们的构建/测试过程变得复杂。
- 生产的组件被运送给客户。如果我们告诉他们升级到 .Net 4.5 以使用 4.0 程序集,他们将不会都感到高兴。
除了摆脱预编译的正则表达式之外,你们中的任何人都知道更好的解决方案吗?