Cześć, próbuję wydrukować dokument do pdf'a z Optimy. Ale coś nie idzie. Kod pisany na czuja, bo dokumentacji nie mogę się doszukać.
- świeże demo optimy
- Visual Studio 2022
- aplikacja konsolowa
Jak pododawałem wszystkie odwołania, i z nuget'a pościągałem zależności, to dochodzi do ostatniej linijki i tam rzuca wyjątek że "Nie można załadować pliku lub zestawu 'Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.2" - bo faktycznie ściągnięta jest wersja 9.0.1. Jak natomiast ściągne te startsze wersje, to znowu wywala się na tworzeniu LoginService - Message=Could not load file or assembly 'Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.2
Oto cały kod:
using CDNHeal;
using Optima.Common;
using Optima.Common.Logic.Services;
Environment.CurrentDirectory = @"C:\Program Files (x86)\Comarch ERP Optima";
/*
Jak zainstaluje pakiety z nuget w wersji 8.0.1, to poniższa linijka wyrzuca wyjątek:
System.IO.FileNotFoundException HResult=0x80070002
Message=Could not load file or assembly 'Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.2, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Nie można odnaleźć określonego pliku.Source=Common
*/
LoginService login = new LoginService();
ModuleCollection mc = new ModuleCollection() { Module.KasaBank, Module.Handel };
login.Login("AA", "", "TEST", mc);
var ss = login.LoginInfo.CreateSession();
dynamic Parameters = Activator.CreateInstance(Type.GetTypeFromProgID("CDNLib.Dictionary"));
dynamic Format = Activator.CreateInstance(Type.GetTypeFromProgID("CDN.WydrFormat"));
Format.ZrodloID = 0;
Format.ID = 1834;
Format.FiltrSQL = "TrN_TrNId = 1";
Format.Sortowanie = "";
Format.Urzadzenie = 4;
Format.PlikDocelowy = "d:\\TEST.PDF";
Format.DodajZapytanieAktualizacjiDanychRecordsetu("SELECT * FROM cdn.TraNag WHERE TrN_TrNID = 1");
/* Jeśli mam wszystko poaktualizowane do wersji bieżącej 9.0.1, to dochodzi tutaj i poniższe wywołanie wyrzuca:
System.IO.FileLoadException HResult = 0x80131621
Message = Nie można załadować pliku lub zestawu 'Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.2, Culture=neutral, PublicKeyToken=adb9793829ddae60' lub jednej z jego zależności. Zlokalizowana definicja manifestu zestawu nie odpowiada odwołaniu do zestawu. (Wyjątek od HRESULT: 0x80131040) Source = Microsoft.CSharp
*/
Format.Wykonaj(Parameters);
Plik projektu:
<project sdk="Microsoft.NET.Sdk"> <propertygroup> <outputtype>Exe</outputtype> <targetframework>net8.0</targetframework> <implicitusings>enable</implicitusings> <nullable>enable</nullable> <platforms>x86</platforms> </propertygroup> <itemgroup> <packagereference include="Microsoft.Extensions.DependencyInjection" version="8.0.1" /> <packagereference include="Microsoft.Extensions.Logging" version="8.0.1" /> <packagereference include="Microsoft.Extensions.Logging.Abstractions" version="8.0.2" /> <packagereference include="Microsoft.Win32.SystemEvents" version="8.0.0" /> <packagereference include="System.Configuration.ConfigurationManager" version="8.0.1" /> <packagereference include="System.Data.SqlClient" version="4.9.0" /> </itemgroup> <itemgroup> <reference include="ADODB"> <hintpath>..\..\..\..\..\Program Files (x86)\Comarch ERP Optima\Interop\adodb.dll</hintpath> </reference> ... I tutaj pozostałe dll'ki o które krzyczałCoś chyba robię nie tak. Macie ktoś kawałek działającego kodu ?