在运行时编译可移植类库

use*_*403 6 .net portable-class-library csharpcodeprovider

在下面的示例中...而不是编译.Net"v4.0",应该提供什么来编译PCL库?

var compiler = new CSharpCodeProvider(new Dictionary<string, string>
{
   {"CompilerVersion", "v4.0"}
});
Run Code Online (Sandbox Code Playgroud)

Dan*_*ted 2

从这个角度来看,可移植类库只是一个针对一组可移植参考程序集(而不是特定框架的实现或参考程序集)进行编译的库。

如果在 Visual Studio 中创建 PCL,在解决方案资源管理器中选择“.NET 可移植子集”引用,然后在属性窗口中查看 Path 属性,则可以看到 PCL 引用程序集的路径。(路径会有所不同,具体取决于您在 PCL 中定位的平台集)。

将编译器将使用的引用设置为PCL引用路径中的所有DLL,结果应该是可移植库。如果默认包含一些引用(即 mscorlib),那么您还需要禁用它们。