我有一个相对较大的WinForms应用程序,它是在Visual 2013下开发的。最近,我在另一台计算机上升级到Visual 2015,并一直试图使该项目在其下工作。
我的第一个问题/关注是,当我第一次在Visual 2015中打开项目时,它并没有要求我将解决方案“升级”到Visual 2015,它只是愉快地打开了解决方案。我习惯于让Visual要求“升级”解决方案,并创建一个新的.sln
文件,该文件被识别为例如Visual 2013解决方案,而不是旧的VS10解决方案。
我面临的实际问题是,似乎涉及密码学的10个错误。从我可以猜到的情况来看,这与解决方案本身有关,以及微软在后台对它做了什么,我认为在这个项目中使用最多的加密技术是生成Guid
。
错误的图像
另一个问题是,由于我不习惯,我不能双击它们自身的错误,从而导致Visual认为它们正在发生的地方。因此,我不知道产生它们的是什么,也不知道从这里走向何方。
有什么建议吗?
这是一个Windows 7安装在旧型号的联想Thinkpad上。我在这台计算机上也没有管理权限。
编辑:到目前为止,我已经尝试将<enforceFIPSPolicy enabled="false"/>
添加到C\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Devenv.exe.config
的Visual 15设置中,尽管每当我尝试编辑它(即使在重新启动之后),该文件都由另一个程序“始终”打开。因此,我似乎无法编辑该文件以关闭15的FIPS。
我仍然愿意接受建议或线索。
EDIT2: --我在IT的帮助下成功地将<enforceFIPSPolicy enabled="false"/>
导入到了IDE设置中(使用这篇文章)。虽然这似乎毫无作用,但似乎被忽视了。
这里的另一个问题/线索是,即使我在Visual中创建了一个全新的C#项目,当我试图编译时,也会收到相同的错误。因此,我必须假设Visual在某个“背景中”使用SHA256类。如果我确实控制了它的使用,我会尝试在下面实现@Kevin的答案。
我在网上找到了另一个可能解决办法,但我不确定它是否有效。
VS 2012现在在运行msbuild的单独流程中构建C#项目。您添加到devenv.exe.config的条目(用于VS 2010)将不会被这个过程所看到。您应该添加相同的条目,即msbuild的配置文件;通常在c:\Windows\Microsoft.Net\Framework\v4.0.30319\msbuild.exe.config“中可以找到
当我有时间处理.NET 4.5+ msbuild.exe.config
文件并返回报告时,我将尝试完成这个任务。
发布于 2016-05-18 13:39:15
我使用的解决方案是这里的轮廓。
<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
虽然我认为真正起作用的是第一个文件。
发布于 2016-05-10 19:48:36
您不能双击错误并让它转到抛出错误的位置,因为它是在SHA256类中抛出的。如果设置了FIPS遵从性位,任何非FIPS兼容的.NET加密类都会抛出此错误。
你有两个选择来解决这个问题..。
首先,您可以在试图运行应用程序的机器上关闭FIPS遵从性位(不推荐)。
否则,您可以更新代码以使用符合FIPS的SHA256 (SHA256CryptoServiceProvider)版本。这将需要.NET Framework3.5或更高版本。
https://stackoverflow.com/questions/37146907
复制相似问题