Подтвердить что ты не робот

Не удается найти классы DataProtectionScope и `ProtectedData` в System.Security.Cryptography

Я передал файл System.Security.dll, как описано в этой статье, но, согласно моей IDE, строка using System.Security.Cryptography; можно безопасно удалить, так как она не была б.

В той же среде IDE мне сообщается, что у меня есть ошибка с DataProtectionScope и ProtectedData. Предполагается, что это пространство имен ,. Однако, когда я прокладываю себе путь через пакеты, я не вижу их там.

Является ли статья неправильной? Как я могу получить доступ к двум классам?

4b9b3361

Ответ 1

Это может быть пощечина в вашем лице, потому что вы, вероятно, пробовали это (и вы этого не сделали, вы могли бы заслужить). Что произойдет, если вы переустановите всю среду разработки? И я имел в виду действительно целую вещь. Удалите фреймворк, VS, удалите файлы, перейдите в параноид и очистите корзину, переключитесь в другой каталог установки и т.д. Остается ли проблема?

Я знаю, что это не объясняет почему, но на этом этапе я предполагаю, что вас больше всего интересует, как убить проблему.

Если у вас есть доступ к запасному компьютеру - почему бы вам не установить VS на , который, и посмотреть, можете ли вы воспроизвести ошибку. Если нет, то есть что-то подозрительное с вашей основной машиной, и вы, вероятно, никогда не узнаете, что произошло.

Я подчеркиваю здесь, что это только список общих предложений, на которые должен полагаться каждый программист, когда ничего нормального и логичного не работает. И да, я делаю ненавижу компьютеры. Я люблю программировать, но я ненавижу компьютеры. Они похожи на маленьких, злых людей с клавишами...

Ответ 2

Как @Coral Doe упомянул в комментарии в @Dave Lucre:

"У нас была аналогичная проблема, и это сработало. using System.Security.Cryptography, не показывал мне [ProtectedData] и ProtectedMemory, пока я не ссылался на System.Security.dll для конкретной среды."

Это решило проблему для меня. В частности, я выполнил следующие шаги:

  • Откройте проект в Visual Studio.
  • Щелкните правой кнопкой мыши имя проекта в обозревателе решений и выберите "Свойства".
  • Перейдите на вкладку "Ссылки" слева.
  • Нажмите кнопку "Добавить".
  • Перейдите на вкладку .NET.
  • Выберите System.Security и нажмите OK, чтобы добавить ссылку.

Надеюсь, что это поможет.

Ответ 3

Я ссылался на System.Security.dll здесь: C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Security.dll

Добавлено using System.Security.Cryptography;, и я могу видеть как DataProtectionScope, так и ProtectedData.

Я нацелен на полную фреймворк .net 4.0 (а не на профиль клиента).

В каких рамках вы нацеливаетесь?

Ответ 4

Как @Dave Lucre спросил, в какой среде ваш таргетинг на приложения? Visual Studio создает все новые приложения для использования профиля клиента по умолчанию (что, на мой взгляд, является asinine), и это вызывает всевозможные проблемы, если вы его специально не меняете. Посмотрите, посмотрите, куда мы идем оттуда.