如何在ASP.NET MVC 5应用程序中使用Roslyn?

时间:2019-02-23 00:25:13

标签: c# asp.net-mvc asp.net-mvc-5 roslyn

我有一个针对.NET Framework 4.7.2的ASP.NET MVC 5应用程序(准确地说是5.2.7)。我正在尝试为对象的验证规则添加功能。我有很多条件可以转换为C#脚本,我想使用CSharpScript.EvaluateAsync进行评估。

我有一个在LINQPad中工作的原型,并试图将其移植到主项目中。因为主要项目是在VS2013中使用C#5开发的,所以我决定是时候升级到C#7.3和VS2017,所以我这样做了。升级后清理所有内容后,我决定实施原型。

我首先在主项目中添加了Microsoft.CodeAnalysis.Scripting NuGet程序包,但是当我尝试运行该应用程序时,我从MVC 5与任何程序包依赖项之间的库冲突中得到了各种异常。

然后我还原并尝试制作一个单独的项目,在其中包含验证规则代码。当我运行该应用程序时,它已加载,并且一切看起来都很好,直到我尝试触发验证规则。那时它抛出了一个异常:

  

无法加载文件或程序集'Microsoft.CodeAnalysis.Scripting,Version = 2.10.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。

在某种程度上,我又回到了主项目试图加载NuGet软件包的问题。

那么,...有没有办法让我两个人一起工作?如果没有,那么我接下来要做什么呢?迁移到ASP.NET Core?我打算在将来做,只是尝试避免这种情况,因为经过4年的努力,解决方案相当庞大...

1 个答案:

答案 0 :(得分:0)

替代方法(也是正确的选择)实际上是迁移到ASP.NET Core。由于3.0即将来临,我那时可能会这样做。