如何在PCL项目中禁用框架的自动选择?

时间:2013-12-19 12:12:50

标签: msbuild visual-studio-2013 portable-class-library

在Visual Studio 2013中的可移植类项目中,当我选择

  • .NET Framework 4及更高版本
  • Windows应用商店应用(Windows 8)及更高版本
  • Windows Phone 8

Visual Studio声称 Silverlight 5 支持在我选择的其他框架之间可移植的所有可用功能,并自动选择它。但这是错误的,因为我需要使用/不安全的编译器选项,这在Silverlight应用程序中是不可能的。

我选择.NET Framework 4.5而不是4作为变通方法,因此Visual Studio不会自动选择Silverlight 5,但由于该项目与.NET Framework 4完全兼容,因此不需要它。

我怎样才能解决这个问题? 我可以在项目文件中更改任何内容,例如ProjectTypeGuids吗?

1 个答案:

答案 0 :(得分:1)

嗯,你肯定可以绕过它。它只需要对PCL项目的.csproj文件进行一些手术。在文本编辑器中打开它,Notepad会很好,并在ProjectTypeGuids属性之后将此行添加到<PropertyGroup>

  <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

这足以欺骗MSBuild和编译器以允许您使用不安全的代码。

我无法想到任何失败的情况,当您在PCL项目中进行更改并重写.csproj文件时,您不会丢失该属性。你唯一的克星可能是一个超级活跃的商店验证器,拒绝你的应用程序,我认为可能性非常低,因为不安全的代码是好的。只是不要在Silverlight项目中使用它:)