привет,
возникла след проблема - загрузил в отдельный пакет-проект reference assembly, пересобрал ассембли локально и хочу снова загрузить. для этого я удаляю старую дллку с помощью Configuration страницы, загружаю новую, нажимаю Compile All кнопку. после этого все равно остается старая дллка и я не могу проверить новые фиксы/ функционал и тд. в чем может быть проблема?
использую локальную разработку, .net core 3.1 приложение в докере, file mode - false.
Нравится
Добрый день.
Для того чтобы приложение подтягивало сборку из Пакета-Проекта, нужно:
1. Название dll сборки Пакета-Проекта, должно совпадать с названием пакета.
2. dll сборка Пакета-Проекта должна находится в соответсвующей директории:
- TS.Conf/PackageName/Files/Bin/ (для Framework)
- TS.Conf/PackageName/Files/Bin/netstandard (для .NetCore)
3. Для .NetCore флаг Feature-UseSeparateDirectoryToLoadPackageAssemblies (в Terrasoft.WebHost.dll.config) должен быть включен:
<add key="Feature-UseSeparateDirectoryToLoadPackageAssemblies" value="true" />
4. Cборка должна быть помечена аттрибутом:
[assembly: PackageReferenceAssembly(RefAssemblyMarker.All)]
и добавить: using Terrasoft.Core.Attributes;
Это делается в AssemblyInfo.cs (папка Properties - Properties\AssemblyInfo.cs )
Если используется, новая версия проекта *.csproj, то в нем AssemblyInfo.cs генерируется автоматически на основании проекта.
Для того чтобы не было конфликтов автогенерируемой AssemblyInfo.cs с созданной вручную, нужно в проекте *.csproj, отключить автогенерацию AssemblyInfo.cs.
Для этого в проект *.csproj, надо добавить запись:
<PropertyGroup>
.........................................
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
.......................................
</PropertyGroup>
Cherednichenko Nikita,
спасибо за ответ. получилось решить проблему для вызова кода из бизнес процессов.
но все равно осталась проблема вызова рест ендпоинта. не получается сделать вызов если код находится в библиотеке (reference assembly), а не в исходнике кода (source code).
вот такой сервис работает не работает в библиотеке, где содержаться другие классы для бизнесс процессов
using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Activation;
using Terrasoft.Web.Common;
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class GreetingService : BaseService
{
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
public string Test()
{
return "test output";
}
}в чем может быть проблема? или рест сервисы в reference assembly не поддерживаются/надо что-то еще добавить?