【问题标题】:Visual studio C# packagesVisual Studio C# 包
【发布时间】:2011-10-30 19:12:48
【问题描述】:

这是我对 VS 的问题:S 在第一个项目中: System.Security.Cryptography.AesCryptoServiceProvider obj;
一切正常
在第二个项目中:
System.Security.Cryptography.AesCryptoServiceProvider obj1;
它不识别 AesCryptoServiceProvider?!!

VS 是使用不同的包还是什么?!

更新:更改了变量名但仍然无效

【问题讨论】:

  • 您是否在每个项目中都包含对相应 dll 的引用?
  • @Jason 不,我没有。但是这两个项目我都没有,为什么其中一个有效而另一个无效!我应该添加什么参考?
  • 两者都使用相同的 .net 版本?
  • @AkashKava 没有。当我尝试将 2.0 .NET 项目更改为 4 时,会出现更多错误。如何克服呢?并感谢您的帮助。

标签: c# visual-studio-2010


【解决方案1】:

var 是保留关键字。使用不同的标识符名称或@var

System.Security.Cryptography.AesCryptoServiceProvider @var;

这可能不是问题 - 您需要确保每个项目都引用了 System.Core 包含 System.Security.Cryptography 的程序集。

您还需要确保您的目标是包含此类(.NET 3.5 及更高版本)的框架版本 - 这可以在项目属性页中完成。

【讨论】:

    【解决方案2】:

    检查两个项目是否都引用了System.Core。可能只有第一个有它。您必须在两者上都添加它才能使用AesCryptoServiceProvider

    此外,如您所见,here AesCryptoServiceProvider 仅在 .NET 3.5 之后可用。检查您项目的属性,尤其是目标框架

    【讨论】:

    • 这是一个 .net 版本问题;工作的是 4 ,没有工作的是 2 。我可以在不更改 .net 版本的情况下添加引用吗?我确实尝试将其从 2 更改为 4,但它给出了更多参考错误。并感谢您的帮助:D。
    • 您必须将其更改为 .NET 3.5 或更高版本,否则您将无法访问 AesCryptoServiceProvider。也许您正在引用特定于版本 2 的 .dll,这就是您在更改为 4 时遇到错误的原因。
    • Target Version 更改为 4 并删除引发错误的引用。如果需要,请使用 添加参考 向导再次添加它们。
    【解决方案3】:

    两个项目之间的引用是否相同?只需打开参考并查看。我敢打赌你少了一个。但是,您确实应该使用与 var 不同的变量名。另外,你能发布确切的错误吗?

    【讨论】:

      【解决方案4】:

      你不能命名一个变量var,因为它是一个保留字,使用不同的名字,这不会导致错误:

      System.Security.Cryptography.AesCryptoServiceProvider _var;

      编辑:

      AesCryptoServiceProvider 仅在 .Net framework 4 和 3.5 SP1 中受支持,更改目标框架即可工作,并确保该文件中包含 System.Security.Cryptography;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-18
        • 1970-01-01
        • 2016-07-07
        • 2019-07-23
        • 2018-09-12
        • 2020-07-29
        • 2016-03-07
        • 1970-01-01
        相关资源
        最近更新 更多