public class 由于保护级别无法访问

public class inaccessible due to protection level

我正在使用 Squirrel.Windows 作为我的应用程序的更新框架,我从 1.4.4 升级到最新版本 1.5.2,在通过 NuGet 升级后,UpdateManager class 由于无法访问到它的保护级别。

我创建了一个示例项目并通过 NuGet 导入了 Squirrel.Windows nuget 包,我能够毫无问题地实例化 UpdateManager class 的实例。 我尝试清除与 Squirrel.Windows 项目相关的所有 NuGet 包,并清除 csproj 中与其相关的所有剩余信息,再次导入包后我仍然无法访问 class。

namespace Our.Core 
{
    public class Launcher
    {        
        public static void Main(string[] args)
        {
            new Launcher(args);
        }

        public async Task<bool> TryUpdate(string[] args)
        {
            try
            {
                using (var mgr = new UpdateManager(UpdatePath, null, null, null))
                {
                    Log.Information("Checking for updates");
                    var updateInfo = await mgr.CheckForUpdate();
                    if (updateInfo.ReleasesToApply.Any())
                    {
                        Log.Information("Downloading updates");
                        await mgr.DownloadReleases(updateInfo.ReleasesToApply);
                        Log.Information("Applying updates");
                        await mgr.ApplyReleases(updateInfo);

                        return true;
                    }
                    Log.Information("No updates found.");

                    return false;
                }
            }
            catch (Exception e)
            {
                Log.Error(e, "Error while updating");
                return false;
            }
        }
    }
}

问题原来是升级库后,项目中的引用将其特定版本 属性 切换为 false。这导致 Visual Studio 无法正确引用库的正确版本。

故事的寓意,确保检查您的版本,如果您需要使用特定版本,请确保您的特定版本检查是正确的!