6

これは、ポータブル クラス ライブラリから参照できる dll を生成する非常に単純なコードですが、参照を追加すると非ポータブル参照を受け入れるため、エラーが発生しやすくなります。生成しようとしているものがポータブル プロファイルにあることを確認するにはどうすればよいですか? コードは次のとおりです。

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);
            }
        }
    }
}
4

2 に答える 2

0

Silverlight/ポータブル アプリで Roslyn を使用できるかどうか、パウロが尋ねていると思います。答えはノーです。現在、Roslyn はデスクトップ CLR で完全信頼でのみ動作します。これは確かに将来的に有効にしたいものです。

于 2013-05-13T02:33:31.040 に答える