Why is it not possible to catch MissingMethodException?

后端 未结 4 581
深忆病人
深忆病人 2020-12-31 10:38

I have a dependency on .NET 2.0 SP2 in my ClickOnce deployed application (the ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate(false) method is SP

4条回答
  •  星月不相逢
    2020-12-31 11:06

    Exception is thrown on JIT compilation step, so you didn't step into method. Try this version:

        private bool CheckDotNet2SP()
        {
            try
            {
                CheckImpl();
                return true;
            }
            catch (MissingMethodException)
            {
                return false;
            }
        }
    
        [MethodImpl(MethodImplOptions.NoInlining)]
        private void CheckImpl()
        {
            using (var wh = new ManualResetEvent(true))
                wh.WaitOne(1);
        }
    

提交回复
热议问题