Странный конфликт версий: тип 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. Это решило проблему для меня.