2013-12-19 2 views
4

В Portable Class Project в Visual Studio 2013, когда я выбираюКак отключить автоматический выбор фреймворков в проектах PCL?

  • .NET Framework 4 и выше
  • Windows Store приложения (Windows 8) и выше
  • Windows Phone 8

Visual Studio утверждает, что Silverlight 5 поддерживает все доступные функции, которые переносятся между другими выбранными мной фреймами и автоматически выбирает их. Но это неправильно, потому что мне нужно использовать/небезопасный параметр компилятора, который невозможен в приложениях Silverlight.

Я выбираю .NET Framework 4.5 вместо 4 как обходной путь, поэтому Visual Studio не выбирает Silverlight 5 автоматически, но это не должно быть необходимо, поскольку проект полностью совместим с .NET Framework 4.

Как я могу обойти это?
Есть ли что-нибудь, что я могу изменить в файле проекта, например ProjectTypeGuids?

ответ

1

Ну, вы, конечно, можете обойти его. Для проекта PCL требуется просто операция в файле .csproj. Откройте его в текстовом редакторе, Notepad будет делать хорошо, и добавьте эту строку в <PropertyGroup>, после свойства ProjectTypeGuids:

<AllowUnsafeBlocks>true</AllowUnsafeBlocks> 

который достаточно, чтобы обмануть MSBuild и компилятор позволяет использовать небезопасный код.

Я не могу придумать ни одного сценария сбоя, вы не потеряете это свойство, когда будете вносить изменения в проект PCL и переписываете файл .csproj. Ваш единственный враг может быть гиперактивным хранителем Хранилища, который отклонит ваше приложение, я считаю, что шансы очень низкие, так как небезопасный код в противном случае прекрасен. Просто не используйте его в проекте Silverlight :)

+0

Работает как очарование для небезопасных блоков, +1 и спасибо. Но оказалось, что выбор Silverlight имеет больше ограничений, чем я думал. Я не могу использовать какой-либо API в рамках, который использует указатели (например, 'String' имеет только три конструктора), и нет свойства' StructLayout.Pack'. Я уточню вопрос. –

+0

Вот где это заканчивается, вы не можете волшебным образом пропустить отсутствующие декларации. Конечно, вы можете обойти это, скопировав. –

Смежные вопросы