2017-09-28 73 views
0

我有以下代碼段。在UWP中使用Roslyn腳本

var script = CSharpScript.Create("int x = 12;"); 
var result = await script.RunAsync(); 
var variable = result.GetVariable("x"); 
int value = (int)variable.Value; 

它崩潰在第二行上以下列:

無法加載文件或程序集 'System.Core程序,版本= 4.0.0.0, 文化=中性公鑰= b77a5c561934e089'。定位的 程序集清單定義與程序集引用不匹配。 (異常來自HRESULT:0x80131040)

這是一個UWP應用程序,我想使用的Microsoft.CodeAnalysis.CSharp.Scripting庫。我通過NuGet安裝了這個軟件包。該應用程序編譯和部署,但在此代碼的第二行崩潰。

顯然,問題出在System.Core DLL中,它與我的應用程序(4.6)部署的版本和庫(4.0)使用的版本之間存在衝突版本。有沒有人有解決這個問題?有沒有辦法指定要使用的庫的版本或目標框架(即使我使用的是UWP)?

回答

1

通過測試在我身邊,我有以下異常:

System.NotSupportedException:Assembly.Load(字節[],...)在AppX中

不是不支持與你的一樣。我用Microsoft.CodeAnalysis.CSharp.Scripting 2.3.2

實際上腳本API不能在通用Windows應用程序和.NET Native中使用,因爲應用程序模型不支持加載運行時生成的代碼。詳情請參閱this article的「支持的平臺」部分。所以目前你不應該能夠使用UWP的腳本API。

相關問題