新しいCoreランタイムにいくつかの.netコードを移植しようとしていますが、 - ザフライコンパイル。.net Core amd Roslyn CSharpCompilation、タイプ 'Object'は参照されていないアセンブリで定義されています
再開するには、System.Runtimeとmscorlibへの参照が必要ですが、参照方法についてのヒントはありません。
フレームワーク4.6を参照することはできません。プロジェクトが.netコアのLinuxマシンに公開される必要があるためです。 (私の実際のプロジェクトで)
string testClass = @"using System;
namespace test{
public class tes
{
public string unescape(string Text)
{
return Uri.UnescapeDataString(Text);
}
}
}";
var compilation = CSharpCompilation.Create(Guid.NewGuid().ToString() + ".dll")
.WithOptions(new CSharpCompilationOptions(Microsoft.CodeAnalysis.OutputKind.DynamicallyLinkedLibrary))
.AddReferences(
MetadataReference.CreateFromFile(typeof(Object).GetTypeInfo().Assembly.Location),
MetadataReference.CreateFromFile(typeof(Uri).GetTypeInfo().Assembly.Location)
)
.AddSyntaxTrees(CSharpSyntaxTree.ParseText(testClass));
var eResult = compilation.Emit("test.dll");
それは常に(この例では)mscorlibの必要性を訴え及びSystem.Runtime:
これは最低限のコードです。
私はMicrosoft.CodeAnalysis.CSharpパッケージのバージョン2.0.0-beta3に
ロスリンと、その場でコンパイルする方法上の任意のアイデアをと.NETのコアを使用していますか?
この問題は修正されました。十分にありがとうございます。 – Dillanm