2016-08-29 36 views
6

.NET Core ile Roslyn kullanarak C# kodu oluşturmanın bir yolu var mı. Microsoft.CodeAnalysis.CSharp paketinden SyntaxFactory kullanmayı denedim. Şimdiye kadar takıldığım sorun, ondan gelen metin olarak uygun biçimlendirilmiş kod elde etmektir. hepsi .NET Çekirdek ile uyumlu olmayan paket Microsoft.CodeAnalysis.CSharp.Workspaces kullandığını şimdiye kadar is buradaRoslyn ve .NET Core ile C# kodu oluştur

var ws = new CustomWorkspace(); 
ws.Options.WithChangedOption (CSharpFormattingOptions.IndentBraces, true); 
var code = Formatter.Format (item, ws); 

sorun gibi bir şey kullandığını gördüm

Tüm numuneler, Şu an. Roslyn'i .NET Core ile kod üreteci olarak kullanmak için herhangi bir alternatif yol veya geçici çözüm var mı?

+0

Microsoft.CodeAnalysis.CSharp.Workspaces 1.3.2 'netstandard1.3', bunun böylece destekler .Net Core ile uyumlu olmalıdır. – svick

+0

Sorun bir bağımlılık ile değil, Microsoft.CodeAnalysis.CSharp.Workspaces doğrudan - "Bağımlılık Microsoft.Composition 1.0.27 framework .NETCoreApp, Sürüm = v1.0 desteklemiyor." – Fionn

+4

Microsoft.Composition bir PCL'dir, bu yüzden .Net Core'u "imports" eklerseniz kullanabilirsiniz: "portable-net45 + win8 + wp8 + wpa81" 'projeniz.jsonuna. – svick

cevap

11

Microsoft.CodeAnalysis.CSharp.Workspaces 1.3.2 paketi netstandard1.3'u desteklemektedir, bu nedenle .Net Core ile uyumlu olması gerekir. Ancak, yalnızca portable-net45+win8+wp8+wpa81'u destekleyen Microsoft.Composition 1.0.27'ye bağlıdır. Bu framework moniker .Net Core ile uyumludur, ancak bunu yalnızca project.json'unuza aktarırsanız.

bu işi yapmak için gelir

, senin project.json ilgili bölümleri şöyle görünmelidir:

"dependencies": { 
    "Microsoft.CodeAnalysis.CSharp.Workspaces": "1.3.2" 
}, 
"frameworks": { 
    "netcoreapp1.0": { 
    "dependencies": { 
     "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.0" 
     } 
    }, 
    "imports": "portable-net45+win8+wp8+wpa81" 
    } 
}