привет,
возникла след проблема - загрузил в отдельный пакет-проект 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 не поддерживаются/надо что-то еще добавить?