Hej,
Napisałem bardzo prostę aplikację konsolową w dotnet core 5. Przyjmuje dwa argumenty, nazwę pliku log oraz lokalizację plików na których wykona operację.
Jeśli plik logu nie istnieje to sprawdza gdzie jest exe, towarzy w tej lokalizacji plik logu i sobie do niego coś wpisuje.
Mój logger jest dodany jako referencje (project w .net 4.0 - choć nie wydaje mi się, żeby to miało znaczenie).
Projekt główny (dotnet core) zawiera w csproj coś takiego:
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishSingleFile>true</PublishSingleFile>
<PublishTrimmed>true</PublishTrimmed>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
</PropertyGroup>
Publikuję projekt z konsoli za pomcą
dotnet publish -c Release
Z tego co rozumiem to jeśli mam swoje argumenty w pliku csproj to w komendzie nie muszę ich uwzględniać.
komenda tworzy mi katalog:
bin\Release\net5.0\win-x64
W grupie ponad 200+ plików znajduje się mój exe, dll loggera. I z tego exe'ca wszystko mi działa. Plik logu jest tworzony i wpisywane sa informacje. Generalnie cacy.
W tym też katalogu jest folder publish
w którym znajduje się ten mój docelowy exe'c, waży dobre 20 mb ale to jest dla mnie w mierę zrozumiałe.
Niestety za żadej kij nie chce działać. To co ma się wypisywać na konsoli pokazuje się tam bez problemu ale plik logu nie jest tworzony. Próbowałem łapać jakiś wyjątek ale nic takiego mi nie łapie.
I już nie wiem o co chodzi. Pewnie jakaś pierdoła, więc jak ktoś majakąś radę to będę wdzięczny.