Странный конфликт версий: тип CrontabSchedule существует как в NCrontab.Signed, Version=3.2.20120.0, так и в NCrontab, Version=3.2.20120.0.

Я пытаюсь сделать очень простую вещь в консольном приложении:

using Microsoft.Azure.WebJobs.Extensions.Timers;
using NCrontab;
using System;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            var nCrontabSchedule = CrontabSchedule.Parse("5 4 * * * *");
        }
    }
}

Но это дает мне эту ошибку:

Severity    Code    Description Project File    Line    Suppression State
Error   CS0433  The type 'CrontabSchedule' exists in both 'NCrontab.Signed, Version=3.2.20120.0, Culture=neutral, PublicKeyToken=5247b4370afff365' and 'NCrontab, Version=3.2.20120.0, Culture=neutral, PublicKeyToken=null'    ConsoleApp3 C:\Users\bowmanzh\source\repos\ConsoleApp3\Program.cs   12  Active

Он даже не завершил компиляцию! Мне сложно понять, что здесь происходит, я просто хочу использовать простую вещь.

Почему здесь конфликт версий? Фактически, я сослался на два пакета, это мой файл.csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="3.0.6" />
    <PackageReference Include="NCrontab" Version="3.2.0" />
  </ItemGroup>

</Project>

Я уже погуглил, говорят что-то вроде Псевдонимов, но на самом деле на моей стороне этого свойства нет.

Я уже пробовал:

using v2 = NCrontab;
using System;
using Microsoft.Azure.WebJobs.Extensions.Timers;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            v2.CrontabSchedule nCrontabSchedule = v2.CrontabSchedule.Parse("5 4 * * *");
        }
    }
}

Но это не сработало.

Как я могу решить эту проблему?

Большое спасибо за то, что нашли время проверить!

1 ответ

Я столкнулся с той же проблемой. Попытка удалить пакет NCrontab nuget и вместо этого установить NCrontab.Signed. Это решило проблему для меня.

Другие вопросы по тегам