在下面的例子中。。。应该提供什么来编译PCL库,而不是为.Net"v4.0"进行编译?
var compiler = new CSharpCodeProvider(new Dictionary<string, string>
{
{"CompilerVersion", "v4.0"}
});
从这个角度来看,可移植类库只是根据一组可移植引用程序集编译的库,而不是针对特定框架的实现或引用程序集。
如果在Visual Studio中创建PCL,在解决方案资源管理器中选择".NET Portable Subset"引用,并在属性窗口中查看path属性,则可以查看PCL引用程序集的路径。(根据PCL中的目标平台集,路径会有所不同)。
将编译器将使用的引用设置为PCL引用路径中的所有DLL,结果应该是可移植库。如果有默认包含的引用(即mscorlib),那么您还需要禁用它们。
我不认为你"告诉"C sharp编译器将某些东西编译为PCL。相反,这些信息嵌入在.csproj文件中。例如,如果编辑.csproj
并为项目类型添加guid {786C830F-07A1-408B-BD7F-6EE04809D6DB}
,它将被编译为PCL。
该网站定义了许多指南:http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs