在 Visual Studio 2013 的可移植类项目中,当我选择
- .NET Framework 4 及更高版本
- Windows 应用商店应用 (Windows 8) 及更高版本
- Windows Phone 8
Visual Studio 声称 Silverlight 5 支持在我选择的其他框架之间可移植的所有可用功能,并自动选择它。但这是错误的,因为我需要使用/unsafe 编译器选项,这在 Silverlight 应用程序中是不可能的。
我选择 .NET Framework 4.5 而不是 4 作为解决方法,因此 Visual Studio 不会自动选择 Silverlight 5,但不需要它,因为该项目也与 .NET Framework 4 完全兼容。
我该如何解决这个问题?
我可以在项目文件中更改任何内容,例如 ProjectTypeGuids
?
最佳答案
嗯,你当然可以绕过它。只需对 PCL 项目的 .csproj 文件进行一些修改即可。在文本编辑器中打开它,记事本就可以了,并将此行添加到 <PropertyGroup>
,在 ProjectTypeGuids 属性之后:
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
这足以欺骗 MSBuild 和编译器,让您使用不安全的代码。
我想不出任何失败场景,当您在 PCL 项目中进行更改并重写 .csproj 文件时,您也不会丢失该属性。您唯一的敌人可能是一个 super 活跃的商店验证器,它会拒绝您的应用程序,我认为可能性非常低,因为不安全的代码在其他方面都很好。只是不要在 Silverlight 项目中使用它:)
关于msbuild - 如何禁用PCL项目中框架的自动选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20681505/