在运行时编译可移植类库

时间:2013-11-21 23:21:39

标签: .net portable-class-library csharpcodeprovider

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

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

2 个答案:

答案 0 :(得分:2)

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

如果在Visual Studio中创建PCL,在解决方案资源管理器中选择“.NET Portable Subset”参考,并在属性窗口中查看Path属性,则可以看到PCL参考装配的路径。 (路径将根据您在PCL中定位的平台集而有所不同。)

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

答案 1 :(得分:0)

我不认为你“告诉”C sharp编译器将某些东西编译为PCL。相反,此信息嵌入在.csproj文件中。例如,如果您编辑.csproj并为项目类型添加guid {786C830F-07A1-408B-BD7F-6EE04809D6DB},则会将其编译为PCL。

这个网站定义了很多guid:http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs