将解决方案从VS2013移至VS2015的问题与加密有关吗?

时间:2016-05-10 19:04:26

标签: c# visual-studio-2013 visual-studio-2015

我有一个相对较大的WinForms应用程序,它是在Visual Studio 2013下开发的。我最近在另一台计算机上升级到Visual Studio 2015,并且一直在努力让项目在它下运行。

我的第一个问题是,当我第一次在Visual Studio 2015中打开项目时,它并没有要求我将解决方案“升级”到Visual Studio 2015,它很高兴只是打开解决方案。我习惯让Visual Studio要求“升级”解决方案并创建一个新的.sln文件,该文件被识别为例如Visual Studio 2013解决方案而不是旧的VS10解决方案。

我面临的实际问题是~10个似乎与加密相关的错误。根据我的猜测,这与解决方案本身以及微软在后台使用的内容有关,因为我在项目中使用的密码术生成Guid

错误的图像 enter image description here

我遇到的另一个问题是,由于我不习惯,我不能双击自己的错误,导致Visual Studio认为它们正在发生的地方。因此,我不确定是什么产生它们或从哪里开始。

有什么建议吗?

这是旧型号Lenovo Thinkpad上的Windows 7安装。我也没有这台电脑的管理员权限。

编辑:到目前为止,我尝试将<enforceFIPSPolicy enabled="false"/>添加到C\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Devenv.exe.config的Visual Studio 15设置文件中,但每当我尝试编辑它时(即使是在新鲜之后)重启)该文件由其他程序“始终”打开。因此,我似乎无法编辑该文件以关闭Visual Studio 15的FIPS。

我仍然愿意接受建议或线索。

EDIT2 :我已经在IT的帮助下(使用this article)成功地将<enforceFIPSPolicy enabled="false"/>置于IDE设置中。虽然这似乎绝对没有,但它似乎被忽略了。

另一个问题/线索是,即使我在Visual Studio中创建一个全新的C#项目,当我尝试编译时,我收到相同的错误。所以我必须假设Visual Studio在“后台”某处使用SHA256类。如果我确实控制了它的用法,我会尝试在下面实现@Kevin的答案。

我在网上找到了另一个possible solution,但我不确定其有效性

  

VS 2012现在在一个运行的单独进程中构建C#项目   MSBuild的。您添加到devenv.exe.config的条目(适用于VS.   这个过程不会看到2010)。你应该添加相同的条目,   亦即         到msbuild的配置文件;通常是在        C:\的Windows \ Microsoft.Net \框架\ v4.0.30319 \ msbuild.exe.config“

当我有时间使用.NET 4.5+ msbuild.exe.config文件并报告时,我会尝试完成此操作。

2 个答案:

答案 0 :(得分:2)

我使用的解决方案是outline here

<enforceFIPSPolicy enabled="false"/>已添加到几个文件中,即

C:\Program Files (x86)\MSBuild\12.0\Bin\msbuild.exe.config
C:\Windows\Microsoft.Net\Framework\v4.0.30319\msbuild.exe.config
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Devenv.exe.config

虽然我认为真正实现它的是第一个文件。

答案 1 :(得分:-1)

您无法双击错误并将其转到错误被抛出的位置,因为它被抛入SHA256类。如果设置了FIPS合规性位,则任何符合非FIPS标准的.NET加密类都会抛出此错误。

你有两个选择来解决这个问题......

首先,您可以在尝试运行应用程序的计算机上关闭FIPS合规性位(不推荐)。

否则,您可以更新代码以使用符合FIPS标准的SHA256版本(SHA256CryptoServiceProvider)。这将需要.NET Framework 3.5或更高版本。