Bu, Taşınabilir sınıf kitaplığından başvurulan bir dll oluşturan çok basit bir koddur, ancak, herhangi bir başvuru eklediğimde, taşınabilir olmayan başvuruları kabul ettiğinden, bu, eğilimli bir hatadır.Roslyn ile bir taşınabilir sınıf kütüphanesi oluşturmak mümkün mü?
using System.IO;
using Roslyn.Compilers;
using Roslyn.Compilers.CSharp;
namespace Ros1
{
class Program
{
static void Main(string[] args)
{
SyntaxTree tree = SyntaxTree.ParseText(
@"using System;
namespace HelloWorld
{
public class A
{
public int Sum(int a, int b)
{
return a + b;
}
}
}");
var co = new CompilationOptions(OutputKind.DynamicallyLinkedLibrary);
var compilation = Compilation.Create("HelloWorld", co)
.AddReferences(MetadataReference.CreateAssemblyReference("mscorlib"))
.AddSyntaxTrees(tree);
using (var file = new FileStream("Sum.dll", FileMode.Create))
{
compilation.Emit(file);
}
}
}
}
Teşekkür ederim Immo, sanırım, Silverlight'a benzer şekilde uygulanır, şimdi eğer müşteri üzerinde montaj üretmek istersem, Roslyn Silverlight içinde derlemek mümkün olur mu? –
Bir PLC'yi derlemek için referans derlemelerine sahip olmanız gerekir. Referans derlemelerin ya bir hedefleme paketi veya kurulacak Visual Studio'yu gerektirdiği göz önüne alındığında, temel olarak bir geliştirici makinesi gerektirir. Yani genel durumda cevabın hayır olduğunu söyleyebilirim. PCL'yi neden istemcide derlemek istiyorsunuz? Bu montaj sadece istemcide kullanılıyorsa, aynı zamanda platforma özgü olabilir, yani doğrudan Silverlight'a karşı derleme yapabilirsiniz. –
Evet, benim tarayıcı uygulaması dışında, asyc hedefleme paketi veya başka herhangi bir şey dahil olmak üzere derlemek için gereken tüm dosyaları zaten vardı. Dinamik olarak derlenmiş kodlara ihtiyacımın nedeni, sunucudan gelen bazı doğrulama kuralları olmasıdır. Roslyn sanatının şu anki durumu, müşteriyi derlemek mümkün değilse, yarısı pişmiş (Eric Lippert'in bacaklarımı kırmak istediğine eminim) görünüyor. –