未知的构建错误“此实现不是Windows平台FIPS验证的加密算法的一部分”

时间:2012-04-16 17:19:50

标签: wpf silverlight xaml fips

所以我启用了这个组策略,并且第一次尝试编译我的解决方案时出现此错误。有趣的是,我只在一个地方使用加密功能,但我看到的是我的所有Silverlight ResourceDictionary文件和WPF userControl文件。其他一切似乎都可以正常编译。

为什么我只在xaml文件中看到错误,我对加密没有任何作用?我知道我可以禁用FIPS组策略,但我确实想支持它。知道为什么特定的XAML文件在编译期间抛出了这个错误吗?

2 个答案:

答案 0 :(得分:4)

我知道我在游戏中有点迟了但我最近遇到了这个问题,并且找到了解决方案。由于@mdutra above所述的原因,这就是为什么它不起作用,但有趣的是,Visual Studio 2010和2012有两个不同的修复"。

此Microsoft Connect post声明:

  

Microsoft于2012年6月30日下午4:00发布:

     

VS 2012现在在运行msbuild的单独进程中构建C#项目。您添加到devenv.exe.config(适用于VS 2010)的条目不会被此过程看到。您应该添加相同的条目,即

     
    

<enforceFIPSPolicy enabled="false"/>

  
     

到msbuild的配置文件;通常在

找到      
    

c:\Windows\Microsoft.Net\Framework\v4.0.30319\msbuild.exe.config

  

该行需要直接添加到</runtime>文件中msbuild.exe.config标记的上方。

我也将它添加到C:\Windows\Microsoft.Net\Framework64\v4.0.30319\msbuild.exe.config文件中,因为我不知道我正在使用哪个MSBuild。

答案 1 :(得分:1)

经过一番研究后,我发现这个答案是有道理的:

WPF and FIPS

以下是链接的内容,以防它被删除:

The following is the reply I got from the WPF XAML team:

We didn’t fix it because this issue was discovered days (June 2, 2008) before the release.

I still have the BBPack I didn’t checkin.  Here is the comment from the code.



            // The Federal Information Processing Standard mandates that

            // MD5 is obsolete and not safe for cryptographic checksums.

            // We are using it to coordinating source files for debugging

            // not authenticating so MD5 use is OK here.

            // But, on a OS with the FIPS compliant switch ON, the managed

            // MD5CryptoServiceProvider Ctor will throw.  So we can't use it.

            //

            // Currently we use a PInvoke wrapper to the Native layer;

            // which still works, even on a FIPS compliant machine.  A Better

            // fix would be to move to the approved SHA checksums, but that

            // will require co-ordination with VS and the Debugger groups etc.



The MSI builder and a few other tools also threw on a FIPS=1 machine.

So even we if we fixed our part (in 3.5sp1), the customer’s end-to-end solution was still broken.



General FIPS info:

http://support.microsoft.com/kb/811833/en-us