Upgrade packages for reset cache
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<PackageId>Caspian.WorkflowFramework</PackageId>
|
<PackageId>Caspian.WorkflowFramework</PackageId>
|
||||||
<Version>1.1.0-preview.17</Version>
|
<Version>1.1.0-preview.18</Version>
|
||||||
<Authors>Behzad Alizadeh</Authors>
|
<Authors>Behzad Alizadeh</Authors>
|
||||||
<Company>Caspian</Company>
|
<Company>Caspian</Company>
|
||||||
<Product>Caspian.WorkflowFramework</Product>
|
<Product>Caspian.WorkflowFramework</Product>
|
||||||
@@ -20,55 +20,55 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Caspian.Elsa.WorkflowContexts" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.WorkflowContexts" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Workflows.Runtime.Distributed" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Workflows.Runtime.Distributed" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Alterations" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Alterations" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Alterations.MassTransit" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Alterations.MassTransit" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Caching.Distributed.MassTransit" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Caching.Distributed.MassTransit" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Caching.Distributed.ProtoActor" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Caching.Distributed.ProtoActor" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.CSharp" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.CSharp" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Dapper" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Dapper" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Dapper.Migrations" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Dapper.Migrations" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.DropIns" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.DropIns" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Email" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Email" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Elasticsearch" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Elasticsearch" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Environments" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Environments" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.MySql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.MySql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.Oracle" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.Oracle" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.PostgreSql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.PostgreSql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.Sqlite" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.Sqlite" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.SqlServer" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.EntityFrameworkCore.SqlServer" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.FileStorage" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.FileStorage" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Hangfire" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Hangfire" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Http" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Http" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Identity" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Identity" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Kafka" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Kafka" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Labels" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Labels" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Liquid" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Liquid" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.MassTransit" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.MassTransit" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.MassTransit.AzureServiceBus" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.MassTransit.AzureServiceBus" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.MassTransit.RabbitMq" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.MassTransit.RabbitMq" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.MongoDb" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.MongoDb" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.OpenTelemetry" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.OpenTelemetry" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Quartz" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Quartz" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Quartz.EntityFrameworkCore.MySql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Quartz.EntityFrameworkCore.MySql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Quartz.EntityFrameworkCore.PostgreSql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Quartz.EntityFrameworkCore.PostgreSql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Quartz.EntityFrameworkCore.Sqlite" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Quartz.EntityFrameworkCore.Sqlite" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Retention" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Retention" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Secrets.Api" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Secrets.Api" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Secrets.Persistence.EntityFrameworkCore.PostgreSql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Secrets.Persistence.EntityFrameworkCore.PostgreSql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Secrets.Persistence.EntityFrameworkCore.Sqlite" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Secrets.Persistence.EntityFrameworkCore.Sqlite" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Secrets.Persistence.EntityFrameworkCore.SqlServer" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Secrets.Persistence.EntityFrameworkCore.SqlServer" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Secrets.Scripting" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Secrets.Scripting" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Sql.MySql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Sql.MySql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Sql.PostgreSql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Sql.PostgreSql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Sql.Sqlite" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Sql.Sqlite" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Sql.SqlServer" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Sql.SqlServer" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Sql" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Sql" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Tenants.AspNetCore" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Tenants.AspNetCore" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa.Webhooks" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa.Webhooks" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="Caspian.Elsa" Version="1.1.0-preview.4" />
|
<PackageReference Include="Caspian.Elsa" Version="1.1.0-preview.5" />
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="2024.3.0" />
|
<PackageReference Include="JetBrains.Annotations" Version="2024.3.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.7" />
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.7" />
|
||||||
|
|||||||
@@ -48,5 +48,15 @@ namespace Caspian.WorkflowFramework.Contracts
|
|||||||
/// Cancels the specified workflow instance.
|
/// Cancels the specified workflow instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Task<WorkflowResponse<dynamic>> CancelInstanceAsync(CancelWorkflowInstanceModel input);
|
Task<WorkflowResponse<dynamic>> CancelInstanceAsync(CancelWorkflowInstanceModel input);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cancels the specified workflow instance.
|
||||||
|
/// </summary>
|
||||||
|
Task<WorkflowResponse<dynamic>> ForceCancelInstanceAsync(CancelWorkflowInstanceModel input);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Evicts a workflow definition from cache (optional, commented out in service).
|
||||||
|
/// </summary>
|
||||||
|
Task EvictDefFromCacheAsync(string name, CancellationToken cancellationToken = default);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
using System.Diagnostics;
|
using Caspian.WorkflowFramework.Contracts;
|
||||||
using System.Dynamic;
|
|
||||||
using System.Text.Json;
|
|
||||||
using Caspian.WorkflowFramework.Contracts;
|
|
||||||
using Caspian.WorkflowFramework.Models;
|
using Caspian.WorkflowFramework.Models;
|
||||||
using Caspian.WorkflowFramework.Utility;
|
using Caspian.WorkflowFramework.Utility;
|
||||||
using Elsa.Common.Entities;
|
using Elsa.Common.Entities;
|
||||||
@@ -11,11 +8,15 @@ using Elsa.Workflows.Management;
|
|||||||
using Elsa.Workflows.Management.Filters;
|
using Elsa.Workflows.Management.Filters;
|
||||||
using Elsa.Workflows.Models;
|
using Elsa.Workflows.Models;
|
||||||
using Elsa.Workflows.Runtime;
|
using Elsa.Workflows.Runtime;
|
||||||
|
using Elsa.Workflows.Runtime.Filters;
|
||||||
using Elsa.Workflows.Runtime.Messages;
|
using Elsa.Workflows.Runtime.Messages;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Converters;
|
using Newtonsoft.Json.Converters;
|
||||||
using San.MongoLogger;
|
using San.MongoLogger;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Dynamic;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace Caspian.WorkflowFramework.Services;
|
namespace Caspian.WorkflowFramework.Services;
|
||||||
public class WorkflowService : IWorkflowService, ILoggable
|
public class WorkflowService : IWorkflowService, ILoggable
|
||||||
@@ -29,6 +30,8 @@ public class WorkflowService : IWorkflowService, ILoggable
|
|||||||
private readonly IWorkflowInstanceStore _workflowInstanceStore;
|
private readonly IWorkflowInstanceStore _workflowInstanceStore;
|
||||||
private readonly IEventPublisher _eventPublisher;
|
private readonly IEventPublisher _eventPublisher;
|
||||||
private readonly IWorkflowDefinitionCacheManager _workflowDefinitionCacheManager;
|
private readonly IWorkflowDefinitionCacheManager _workflowDefinitionCacheManager;
|
||||||
|
private readonly IBookmarkStore _bookmarkStore;
|
||||||
|
private readonly IActivityExecutionStore _activityExecutionStore;
|
||||||
private readonly IMdbLogger<WorkflowService> _logger;
|
private readonly IMdbLogger<WorkflowService> _logger;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -43,6 +46,8 @@ public class WorkflowService : IWorkflowService, ILoggable
|
|||||||
_workflowInstanceManager = _serviceProvider.GetRequiredService<IWorkflowInstanceManager>();
|
_workflowInstanceManager = _serviceProvider.GetRequiredService<IWorkflowInstanceManager>();
|
||||||
_workflowInstanceStore = _serviceProvider.GetRequiredService<IWorkflowInstanceStore>();
|
_workflowInstanceStore = _serviceProvider.GetRequiredService<IWorkflowInstanceStore>();
|
||||||
_eventPublisher = _serviceProvider.GetRequiredService<IEventPublisher>();
|
_eventPublisher = _serviceProvider.GetRequiredService<IEventPublisher>();
|
||||||
|
_bookmarkStore = _serviceProvider.GetRequiredService<IBookmarkStore>();
|
||||||
|
_activityExecutionStore = _serviceProvider.GetRequiredService<IActivityExecutionStore>();
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@@ -724,4 +729,117 @@ public class WorkflowService : IWorkflowService, ILoggable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ForceCancelInstanceAsync
|
||||||
|
public async Task<WorkflowResponse<dynamic>> ForceCancelInstanceAsync(CancelWorkflowInstanceModel input)
|
||||||
|
{
|
||||||
|
var sw = Stopwatch.StartNew();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.Log("Start ForceCancelInstanceAsync", WFInstanceId: input.WorkflowInstanceId, input);
|
||||||
|
|
||||||
|
var instance = await _workflowInstanceManager.FindByIdAsync(input.WorkflowInstanceId);
|
||||||
|
|
||||||
|
if (instance == null)
|
||||||
|
return new WorkflowResponse<dynamic> { Status = 1, Message = "Instance not found", Data = false };
|
||||||
|
|
||||||
|
// جلوگری از Resume شدن دوباره
|
||||||
|
instance.Status = WorkflowStatus.Finished;
|
||||||
|
instance.SubStatus = WorkflowSubStatus.Cancelled;
|
||||||
|
|
||||||
|
// پاکسازی bookmarks از دیتابیس واقعی
|
||||||
|
var bookmarkFilter = new BookmarkFilter()
|
||||||
|
{
|
||||||
|
WorkflowInstanceId = input.WorkflowInstanceId
|
||||||
|
};
|
||||||
|
await _bookmarkStore.DeleteAsync(bookmarkFilter);
|
||||||
|
|
||||||
|
// پاکسازی scheduled activities (در صورتی که runtime distributed باشد)
|
||||||
|
var activityFilter = new ActivityExecutionRecordFilter()
|
||||||
|
{
|
||||||
|
WorkflowInstanceId = input.WorkflowInstanceId
|
||||||
|
};
|
||||||
|
await _activityExecutionStore.DeleteManyAsync(activityFilter);
|
||||||
|
|
||||||
|
//// پاکسازی incidents (در پروژههای بزرگ ضروری است)
|
||||||
|
//await _incidentStore.DeleteManyAsync(
|
||||||
|
// x => x.WorkflowInstanceId == input.WorkflowInstanceId
|
||||||
|
//);
|
||||||
|
|
||||||
|
// ذخیره instance تغییر یافته
|
||||||
|
await _workflowInstanceManager.SaveAsync(instance);
|
||||||
|
|
||||||
|
sw.Stop();
|
||||||
|
|
||||||
|
var response = new WorkflowResponse<dynamic>
|
||||||
|
{
|
||||||
|
Status = 0,
|
||||||
|
Message = "Force cancel completed",
|
||||||
|
Data = true
|
||||||
|
};
|
||||||
|
|
||||||
|
_logger.Log("End ForceCancelInstanceAsync", WFInstanceId: instance.Id, response, sw.ElapsedMilliseconds);
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
sw.Stop();
|
||||||
|
|
||||||
|
var response = new WorkflowResponse<dynamic>
|
||||||
|
{
|
||||||
|
Status = 100,
|
||||||
|
Message = ex.Message,
|
||||||
|
Data = false
|
||||||
|
};
|
||||||
|
|
||||||
|
_logger.Log("Exception in ForceCancelInstanceAsync", WFInstanceId: input.WorkflowInstanceId, response, sw.ElapsedMilliseconds, ex);
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region EvictDefFromCacheAsync
|
||||||
|
/// <inheritdoc />
|
||||||
|
public async Task EvictDefFromCacheAsync(string name, CancellationToken cancellationToken = default)
|
||||||
|
{
|
||||||
|
var sw = Stopwatch.StartNew();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.Log("Start of EvictDefFromCacheAsync", name);
|
||||||
|
|
||||||
|
var defFilter = new WorkflowDefinitionFilter()
|
||||||
|
{
|
||||||
|
Name = name,
|
||||||
|
VersionOptions = VersionOptions.Published
|
||||||
|
};
|
||||||
|
|
||||||
|
var definition = await _workflowDefinitionService
|
||||||
|
.FindWorkflowDefinitionAsync(defFilter);
|
||||||
|
|
||||||
|
await _workflowDefinitionCacheManager.EvictWorkflowDefinitionAsync(definition.DefinitionId);
|
||||||
|
|
||||||
|
var workflowDefinitionFilter = new WorkflowDefinitionFilter()
|
||||||
|
{
|
||||||
|
DefinitionHandle = WorkflowDefinitionHandle.ByDefinitionId(definition.DefinitionId, VersionOptions.Published)
|
||||||
|
};
|
||||||
|
|
||||||
|
var createWorkflowDefinitionFilterCacheKey = _workflowDefinitionCacheManager.CreateWorkflowDefinitionFilterCacheKey(workflowDefinitionFilter);
|
||||||
|
_workflowDefinitionCacheManager.Cache.Remove(createWorkflowDefinitionFilterCacheKey);
|
||||||
|
|
||||||
|
|
||||||
|
var createWorkflowFilterCacheKey = _workflowDefinitionCacheManager.CreateWorkflowFilterCacheKey(workflowDefinitionFilter);
|
||||||
|
_workflowDefinitionCacheManager.Cache.Remove(createWorkflowFilterCacheKey);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
sw.Stop();
|
||||||
|
_logger.Log("End of EvictDefFromCacheAsync", name, sw.ElapsedMilliseconds, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -9,5 +9,6 @@
|
|||||||
<add key="Local Package source" value="D:\MyNugetPackages" />
|
<add key="Local Package source" value="D:\MyNugetPackages" />
|
||||||
<add key="Workflow Package source" value="D:\NugetPackageRepository\WorkflowPackages" />
|
<add key="Workflow Package source" value="D:\NugetPackageRepository\WorkflowPackages" />
|
||||||
<add key="Caspian package source" value="https://nuget.caspian.com/v3/index.json" />
|
<add key="Caspian package source" value="https://nuget.caspian.com/v3/index.json" />
|
||||||
|
<add key="Liara Package source" value="D:\CaspianProjects\NugetPackageRepositoryLiara\AllPackages" />
|
||||||
</packageSources>
|
</packageSources>
|
||||||
</configuration>
|
</configuration>
|
||||||
Reference in New Issue
Block a user