Visual studio 2017 如果启用FIPS加密,VSIX安装程序将崩溃

Visual studio 2017 如果启用FIPS加密,VSIX安装程序将崩溃,visual-studio-2017,vsix,Visual Studio 2017,Vsix,如果启用了FIPS加密,VSIX安装程序是否有解决方法 错误详细信息: 应用程序:vsixinstaller.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程已终止 异常信息:System.InvalidOperationException 在System.Security.Cryptography.MD5CryptoServiceProvider..ctor()中 异常信息:System.Reflection.TargetInvocationException 位于Sys

如果启用了FIPS加密,VSIX安装程序是否有解决方法

错误详细信息: 应用程序:vsixinstaller.exe

框架版本:v4.0.30319

描述:由于未处理的异常,进程已终止

异常信息:System.InvalidOperationException

在System.Security.Cryptography.MD5CryptoServiceProvider..ctor()中

异常信息:System.Reflection.TargetInvocationException

位于System.RuntimeMethodHandle.InvokeMethod(System.Object,System.Object[],System.Signature,布尔值)

位于System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags、System.Reflection.Binder、System.Object[],System.Globalization.CultureInfo)

位于System.Security.Cryptography.CryptoConfig.CreateFromName(System.String,System.Object[])

在System.Security.Cryptography.MD5.Create()中

位于Microsoft.VisualStudio.ExtensionManager.Shared.TelemetryLogger.EndBlockingProcessTelemetry(Microsoft.VisualStudio.Telemetry.TelemetryScope
1,布尔值,系统.Collections.Generic.IEnumerable
1)

在VSIXInstaller.BlockPage.NavigateToInstall(System.Threading.CancellationToken)上

异常信息:System.Reflection.TargetInvocationException

位于System.RuntimeMethodHandle.InvokeMethod(System.Object,System.Object[],System.Signature,布尔值)

位于System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object,System.Object[],System.Object[])

位于System.Delegate.DynamicInvokeImpl(System.Object[])

位于System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate、System.Object、Int32)

位于System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object,System.Delegate,System.Object,Int32,System.Delegate)

在System.Windows.Threading.DispatcherOperation.InvokeImpl()中

位于System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)

位于System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔值)

在System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔值)

在System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)上运行

在MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext,System.Threading.ContextCallback,System.Object)

在System.Windows.Threading.DispatcherOperation.Invoke()中

在System.Windows.Threading.Dispatcher.ProcessQueue()中

位于System.Windows.Threading.Dispatcher.WndProcHook(IntPtr、Int32、IntPtr、IntPtr、Boolean ByRef)

位于MS.Win32.hwndwapper.WndProc(IntPtr、Int32、IntPtr、IntPtr、Boolean ByRef)

位于MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)

位于System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate、System.Object、Int32)

位于System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object,System.Delegate,System.Object,Int32,System.Delegate)

位于System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority,System.TimeSpan,System.Delegate,System.Object,Int32)

在MS.Win32.HwndSubclass.SubclassWndProc(IntPtr,Int32,IntPtr,IntPtr)

位于MS.Win32.unsafentivemethods.DispatchMessage(System.Windows.Interop.MSG ByRef)

位于System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)

位于System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)

位于System.Windows.Application.RunDispatcher(System.Object)

位于System.Windows.Application.RunInternal(System.Windows.Window)

在System.Windows.Application.Run(System.Windows.Window)中


在vsixsinstaller.App.Main()上,反编译
MD5CryptoServiceProvider
构造函数将显示以下内容:

public MD5CryptoServiceProvider() {
    if (CryptoConfig.AllowOnlyFipsAlgorithms)
        throw new InvalidOperationException(Environment.GetResourceString("Cryptography_NonCompliantFIPSAlgorithm"));
    // ...
}
因此,基本上,.NET framework是显式检查FIPS符合性,并在启用时引发异常,而VSIX安装程序不会处理该异常

我建议使用MicrosoftConnect打开一个bug(包括堆栈跟踪),因为安装程序应该能够处理此异常并继续安装


通过将VSIX安装程序可执行文件的配置文件修改为,您可能有幸在本地解决此问题以启用安装。

那么,反编译
MD5CryptoServiceProvider
构造函数将显示以下内容:

public MD5CryptoServiceProvider() {
    if (CryptoConfig.AllowOnlyFipsAlgorithms)
        throw new InvalidOperationException(Environment.GetResourceString("Cryptography_NonCompliantFIPSAlgorithm"));
    // ...
}
因此,基本上,.NET framework是显式检查FIPS符合性,并在启用时引发异常,而VSIX安装程序不会处理该异常

我建议使用MicrosoftConnect打开一个bug(包括堆栈跟踪),因为安装程序应该能够处理此异常并继续安装


您可能有幸在本地解决这个问题,通过将VSIX安装程序可执行文件的配置文件修改为来启用安装。

调用堆栈是什么?VSIX安装程序是一个托管应用程序,您可以将调试器附加到它,而不会有太多麻烦。我在崩溃时的事件查看器中添加了错误。什么是调用堆栈?VSIX安装程序是一个托管应用程序,您可以将调试器附加到它,而不会有太多麻烦。我已在崩溃时的事件查看器中添加了此错误。我尝试修改配置文件,但仍然是相同的错误。我将打开一个错误。在Microsoft Connect中添加了一个错误:我试图修改配置文件,但仍然是相同的错误。我将打开一个错误。在Microsoft Connect中添加了一个错误: