Hirdetés

2024. április 19., péntek

Gyorskeresés

Hozzászólások

(#9952) petyus_ válasza bandi0000 (#9950) üzenetére


petyus_
senior tag

Ahol lehet, érdemes async metódusokat használni (mondjuk egy saját használatra szánt webappnál nem valószínű, hogy észreveszed a különbséget, de egy desktop appnál ha nem async-ot használsz, akkor a mentés idejére megfagy a UI)

A validálással kapcsolatban, én főleg webes alkalmazásokon dolgozom, desktop appot soha nem csináltam még, így nem tudom ott hogy szokták megoldani. Weben általában amit lehet, már a UI-on validálunk egyből, ettől függetlenül a szerveren ugyanúgy még egyszer validálunk.

Biztos van valami event winformsban, amire fel tudsz iratkozni (mondjuk amikor a kurzor elhagyja az input boxot), itt meg tudsz csinálni minden validálást, és submitkor már valid lesz minden adat. Esetleg akkor validálnék újra a service-ben, ha valamelyik field mondjuk már meglévő adatoktól függ, és ez változhat közben.

(#9953) bandi0000


bandi0000
nagyúr

Na nagyjából kész lettem, viszont elég hektikusan működik az adatbázis... :D

Code first megközelítést használtam, modellek db context kapcsolatok, és használtam migrációt.

Szóval kész lett az adatbázis része, ráhívtam az enable-migrationst és add-migrations init -et

A gond az, hogy töki hektikusan elindítom és kiírja, hogy az adatbázist létrehozta már stb hiba, aztán kitörlöm az adatbázist és azt írja, hogy login nem ment valszeg mert nem találja az adatbázist :D Mit szúrhatok el? szerintem kevertem valamit és emiatt van kavarodás benne is...

Azt szeretném, hogy ha még nincs adatbázis, akkor hozza létren, és ha valaki lehúzza a repot, akkor neki se kelljen trükközni, csak indít és megy

+1, ha kiírja a login hibát, akkor változtatok a DB néven, és megint jó

DbContext releváns rész:

        public DbContext() : base("name=DbConnectionString")
        {
          System.Data.Entity.Database.SetInitializer<DbContext>(new CreateDatabaseIfNotExists<DbContext>());
        }

AppConfig:
    <connectionStrings>
      <add name="DbConnectionString"
      connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=Db;Integrated Security=true;MultipleActiveResultSets=True"
        providerName="System.Data.SqlClient"/>
  </connectionStrings>

[ Szerkesztve ]

Xbox One: bandymnc

(#9954) martonx válasza bandi0000 (#9953) üzenetére


martonx
veterán

Ha Auto Migration kell, akkor a program.cs-be érdemes rakni egy ilyet:

//Auto migration
using var serviceScope = (app as IApplicationBuilder).ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope();
using var context = serviceScope.ServiceProvider.GetService<ApplicationDbContext>();
await context!.Database.MigrateAsync();

Én kérek elnézést!

(#9955) bandi0000 válasza martonx (#9954) üzenetére


bandi0000
nagyúr

Köszi, de szerintem nem ugyan arról beszélünk. Nekem az a bajom, hogyha létrejön az adatbázis, kitörlöm a fájlt, és futtatom az appot, akkor nem hozza létre megint, hanem kiírja hogy nem sikerült a login, valszeg azért mert ugye nincs fajl

Xbox One: bandymnc

(#9956) martonx válasza bandi0000 (#9955) üzenetére


martonx
veterán

"kitörlöm a fájlt" - milyen fájlt törölsz ki???

Én kérek elnézést!

(#9957) bandi0000 válasza martonx (#9956) üzenetére


bandi0000
nagyúr

Az adatbàzist, .mdf asszem

Xbox One: bandymnc

(#9958) petyus_ válasza bandi0000 (#9957) üzenetére


petyus_
senior tag

dbContext.Database.EnsureCreated()) létrehozza neked a DB-t, ha nem létezik. Meghívhatod akár constructorban is, de érdemesebb kiszervezni, és mondjuk IsDevelopment esetén meghívni.

Program.cs-ben mondjuk így tudod megoldani:
if (app.Environment.IsDevelopment())
{
    using var scope = app.Services.CreateScope();
    var services = scope.ServiceProvider;
    var db = services.GetRequiredService<DbContext>();
    db.Database.EnsureCreated();
}

Ha nem akarsz migrationökkel foglalkozni, akkor az EnsureCreated előtt meghívhatod az EnsureDeleted()-et is, így mindig törli/létrehozza a DB-t. (nyilván ezt prodban ne csináld :))

(#9959) bandi0000 válasza petyus_ (#9958) üzenetére


bandi0000
nagyúr

Köszi, viszont ilyen metódust nem találok, valszeg más verziót használok... Amúgy EF6-ot

Program.cs-ben meghívtam a Database.createIfNotExiststs() fv-t, először létre is hozta szépen, aztán bezártam a studiot és kitöröltem az adatbázis fájlt. Megnyitottam és megint nem hozta létre, mitöbb olyan, a Database.Exists() fv-ny ius true-val tér vissza. Olyan mintha be cachelné magának vagy nem is tudom, ezután a hibaüzenet már egyértelmű:

SqlException: Cannot open database "..." requested by the login. The login failed.
Login failed for user

[ Szerkesztve ]

Xbox One: bandymnc

(#9960) petyus_ válasza bandi0000 (#9959) üzenetére


petyus_
senior tag

Milyen dotnet verziót használsz? Az EnsureCreated az EntitifyFrameworkCore-ban van, amit te használsz az meg sima EF.
EnsureCreated
CreateIfNotExists

(#9961) martonx válasza bandi0000 (#9959) üzenetére


martonx
veterán

Miért kézzel fizikailag törlöd a db-t? Valami ide-ben kellene törölni. Ez így önszívatás.

Én kérek elnézést!

(#9962) bandi0000


bandi0000
nagyúr

Igen igen, ez volt a key point... Visual studion belül talàn server object explorer , vagy micsida is a neve, ha azon keresztül töröltem, akkor jó volt..szal én csesztem el de most már megvan, köszi

Xbox One: bandymnc

(#9963) joysefke


joysefke
veterán
LOGOUT blog

WindowsIdentity-vel kapcsolatban szeretnék segítséget kérni. Nem értek hozzá, eddig nem kellett ezzel foglalkoznom. Világítsatok rá, ha valami valahol technikailag nem megoldható.

1, van egy applikáció ami egy lokál service account "LOCALPC\MyService" nevében fut.
ennek az accountnak igény szerint tudok jogosultságokat adni.

2, Elő kell állítanom egy WindowsIdentity objektumot ami egy domain usert személyesít meg: DOMAIN1\Pisti . Ezt a WindowsIdentity objektumot egy belső API használja. Úgy gondolom, hogy nem imperszonálásra, csupán a usert érintő AD security releváns információk megnézésére. Ebben nem vagyok biztos.

3, Az applikáció rendelkezik a domain admin user/pwd párosával "DOMAIN1\Administrator" + Pwd (igen, ez már eredetileg egy ilyen applikáció :) ) Pistiével és a többi userével viszont nem.

Tehát szeretnék DOMAIN1\Pistike nevére előállítani az applikációban egy WindowsIdentity objektumot.

Nem tudom, hogy ez egyáltalán lehetséges-e.

4, Létezhet-e WindowsIdentity objektum a LOCALPC-n DOMAIN1\Pisti nevére anélkül, hogy a LOCALPC a DOMAIN1-ben lenne? Jelenlegi környezetemben a LOCALPC bent van a domainben, de az appot futtató account nincsen.

5, Hogyan tudom megvalósítani? Nem akar összejönni, bár ez nem csoda, mert nincs vele tapasztalatom?

Azt látom, hogy ha "DOMAIN1\Administrator" futtat kódot, akkor
new WindowsIdentity(string: DOMAIN1_Pisti_upn)
konstruktorral tudok érvényes és az app számára használható WindowsIdentity objektumot létrekozni. Pisti nevére Pisti pwd-je nélkül

Az is működik, hogy LOCALPC\MyService futtatja a kódot és bejelentkezteti a DOMAIN1\Administrator-t username/pwd-vel
advapi32.dll.LogonUser(lpszUsername,  lpszDomain, string lpszPassword, dwLogonType, dwLogonProvider, out phToken) -en keresztül. Itt végül visszakapok egy WindowsIdenity a DOMAIN1\Administrator nevére és úgy tűnik, hogy imperszonálásra is tudom használni, de a
new WindowsIdentity(string: DOMAIN1_Pisti_upn)
hívás így is elbukik. Az alábbi hibaüzenettel:

Error Message: Test method ApiSandbox.ImpersonationSandbox.Test2 threw exception: System.DllNotFoundException: Unable to load DLL 'secur32.dll': Either a required impersonation level was not provided, or the provided impersonation level is invalid. (Exception from HRESULT: 0x80070542) Stack Trace: at System.Security.Principal.WindowsIdentity.KerbS4ULogon(String upn, SafeAccessTokenHandle& safeTokenHandle) at System.Security.Principal.WindowsIdentity..ctor(String sUserPrincipalName, String type) at System.Security.Principal.WindowsIdentity..ctor(String sUserPrincipalName) at ApiSandbox.ImpersonationSandbox.Test2() in C:\...\ImpersonationSandbox.cs:line 48

Az eleje, az "Unable to load DLL 'secur32.dll'" biztosan nem stimmel. Ugyanazt a tesztkódot domain-adminként elindítva lefut.

Van ezzel a témával kapcsolatban valami jó anyag?

[ Szerkesztve ]

(#9964) ReSeTer


ReSeTer
senior tag

Helló!

Van egy listám különböző számokkal. Abból a listából én törlök véletlenszerűen. Hogyan lehetne ezt a listát újrarendezni úgy, hogy csökkenő legyen, és sorba legyenek üres hézag nélkül? Tehát újrarendezésről is lenne szó.
Van erre külön gyári method? Gondolom a sima sort funkciók csak sorba rendezik és ott maradnak az üres helyek is feleslegesen.

Lehet hülyeséget kérdezek, mert most azon gondolkozok, hogy ha törlök akkor a többi szám ID-ja is megváltozik?

Kezdő vagyok.

[ Szerkesztve ]

(#9965) tboy93 válasza ReSeTer (#9964) üzenetére


tboy93
nagyúr

Ha c# List-ről van szó, akkor a RemoveAt metódus eltávolítja a paraméterben megadott indexen lévő lista elemet a "helyével" együtt, tehát újra is méretezi a listát és az eltávolított elem utáni elemek indexe is változik természetesen. Ha eleve sorba voltak rendezve, akkor az a növekvő / csökkenő sorrend továbbra is megmarad.

(#9966) savior


savior
őstag

Helló.
Unity-t használok, amiben c# van.
Sokmindent letudok benne kódolni, de van egy része, ami nekem annyira nem megy.
Régen lpc nyelven programoztam mud-ot, és ott valahogy így lehetett eltárolni az adatbázist: mapping mp = ([ "fegyverek" : ([ "fakard" : ([ "sebzes" : 1, "tipus" : "vago" ]), "buzogany" : ([ "sebzes" : 2, "tipus" : "zuzo"]) ]) ])
És utána az mp["fegyverek"]["fakard"]["sebzes"] visszaadta, hogy 1.
Namost ez én jelenleg úgy tárolom unityben, hogy string[] fegyverek és megadom a fegyverek neveit, aztán egy másik string[] -ben elhelyezem a tipusukat, egy harmadikban a sebzest. Lekérdezéskor pedig fegyverek[0], tipus[0], sebzes[0] -val mondjuk az elso fegyver értékeit lekérem.
Szerintem a mostani módszerem nem túl stílusos, habár működik. Hogy tudnám ezeket az adatokat a legjobban eltárolni/lekérdezni?

https://sites.google.com/view/saviorweboldala/home

(#9967) quailstorm válasza savior (#9966) üzenetére


quailstorm
nagyúr

Objektum-orientáltság, öröklődés erre jól ráhúzható.

Fegyver interfész, vagy absztrakt osztály virtuális függvényekkel és azt implementálod az egyes fegyvertípusok szerint.

További olvasnivaló itt.

(#9968) savior válasza quailstorm (#9967) üzenetére


savior
őstag

Köszi. Megnézem.

https://sites.google.com/view/saviorweboldala/home

(#9969) sztanozs válasza savior (#9966) üzenetére


sztanozs
veterán

De ha nem akarsz osztalyokat, akkor siman egy JSON-ba berakhato az egesz es lehet ezek alapjan kezelni:
https://stackoverflow.com/a/72126357
vagy
https://stackoverflow.com/a/3806407

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9970) savior válasza sztanozs (#9969) üzenetére


savior
őstag

Köszi. Így elsőre ez talán még jobbnak tűnik. Kipróbálom ezt is.

https://sites.google.com/view/saviorweboldala/home

(#9971) joysefke válasza savior (#9970) üzenetére


joysefke
veterán
LOGOUT blog

a típust enum-ként lenne érdemes tárolni

(#9972) Keem1


Keem1
addikt

Srácok, logical loopba kerültem :U
Van egy ASP.Net Core Razor webappom. Próbálom a megértést elősegítendő leírni, mim van:

- CommonService, különböző, webapp-wide nyalánkságok, pl. logger, config fileok handlere, konstansok
- SpotifyService : CommonService, Spotify API, a Commonból származtatva, pl. ne kelljen újabb logger instance, stb., ami már a commonban is megvan
- WeatherService : CommonService, kb mint a fenti
- SQliteService.. na itt jön a baj, ebben példányosítottam egy commont: var common = new CommonService();
Szintén azért, hogy pl loggert használhassak
A probléma az, hogy szeretnék SQLite-ot a commonban is, de ha var sqlite = new SQLiteService(); akkor exceptiont kapok, feltételezem, jogosan, a keresztbe példányosítás miatt.

Tudom, hogy kb a logikával ellentétes dolgot akarok, deee ...
Hogy tudnék mégis egy SQLiteService instancet létrehozni? :R

(#9973) martonx válasza Keem1 (#9972) üzenetére


martonx
veterán

Nincs mese, át kell szervezned a kódodat. Commonservice-t szüntesd meg, loggernek pl. teljesen felesleges service, a DI része!

Én kérek elnézést!

(#9974) joysefke válasza Keem1 (#9972) üzenetére


joysefke
veterán
LOGOUT blog

1,
Mi az, hogy "keresztbe példányosítás"?
Ha öröklődéssel hoznál létre egy körkörös dependenciát (származtatott osztály ugye függ az ősosztályától), azt kódszerkesztési időben észrevenné a VS és nem tudsz eljutni oda, hogy futni tudjon a kódod és kivételt kapj mivel le sem forg fordulni. Tehát nem ez a hiba.

2,
Tehát akarsz egy ilyet: SQLiteService :  CommonService { ...}

Aztán paraméter nélküli konstruktorral szeretnéd példányosítani:

SQLiteService()

Itt kódszervezési probléma van. Az ASP Net Core fő szervezési koncepciója a Dependency Injection. Mivel user kódot írsz és itt most nincsenek egyéb megfontolások ezért ezt az esetedben konstruktorral történő injekciót kéne jelentsen.

A Te SQLiteService osztályod azt állítja magáról, hogy ő nem függ senkitől és semmitől. Ami nonszensz.
Próbáld ki, csinálj egy unit teszt projektet, add hozzá az ASPs projektedet mint függőség és próbáld meg unit tesztből példányosítani és használni SQLiteService -t.

Nyilván nem fog menni, mert szükség lenne az SQLite fájl útvonálára minimum, ami viszont konfigurációból (illene) jöjjön.

3,
Loggolás ugyanez pepitában.

ASP-ben a loggolás legegyszerűbb módja DI-jon keresztül van:
Logging in .NET Core and ASP.NET Core | Microsoft Learn

Szerintem az a baj, hogy a szervizeidben rejtett, implicit függőségek vannak amelyeket nem derítettél fel.

[ Szerkesztve ]

(#9975) Keem1 válasza martonx (#9973) üzenetére


Keem1
addikt

@martonx és @joysefke

Ahogy látom, mindketten átszervezést javasoltok. Úgyhogy akkor ebbe az irányba kell elindulnom.

A logger azért pihent itt. hogy az egész webapp során egyszer kelljen felparamétereznem és könnyebben használhassam.

Az SQLite dettó, a db file természetesen configból jön, igen, nincs hardcodeolva.

Köszi srácok, akkor kicsit átalakítom a kódot.

(#9976) martonx válasza Keem1 (#9975) üzenetére


martonx
veterán

Az megvan, hogy amit írsz az nettó hülyeség? Mind a logger, mind a DB esetben?
Dependency Injectionről hallottál már?
De még ha nem is, akkor is hülyeség, amit írsz, ne mondd már, hogy Asp.Net Core-ban folyton újra és újra paraméterezgetni kell a DB-t, meg a Loggert :D
Vagy akkor valamit őrületesen rosszul kezdtél el, és előbb talán a hivatalos dokumentációt érdemes lenne átfutnod. Asp.Net Core nem is létezik DI nélkül. Akkor meg miről beszélünk?

Én kérek elnézést!

(#9977) petyus_


petyus_
senior tag

Sziasztok!

Elkezdtem egy kis projectet, ami egy kártyakészítő template engine, megadod a kártya nevét, költséget, képet hozzá, szöveg, stb, és szépen megrajzolja.
(egy társasjáték fordítása a cél). Grafikához egyáltalán nem értek, igazából az egész csak meglévő képek, szövegek egymásra illesztése.

Használok pár ikont a szövegben, ezeket sikerült beleszerkesztenem a fontba, ligature-ként hozzáadtam, szépen megcsinálja ezt is. Viszont szeretnék színes ikonokat is használni, és itt elakadtam, nem tudom egyáltalán megoldható-e. Tehát azt szeretném, hogy van egy színes svg-m, ezt belerakom egy fontba, csinálok hozzá ligature-t, és szépen legenerálja nekem. Megoldható ez?

A workaroundom sajnos elég melós, ott szavanként rajzolná az egész szöveget, és ha a szó egy ilyen"keyword", akkor beszúrok egy képet. De így sokkal több munka az egész megírása, plusz csomó automatikusan számított dolgot elveszítek (pl szöveg milyen széles, hány sorba fér el, ezeket mind manuálisan kellene számolnom).

Egyébként a SkiaSharpot használom, Harfbuzz extensionnel (ez tud ligature-t, az alap nem).

Van valakinek tapasztalata, tippje?

(#9978) martonx válasza petyus_ (#9977) üzenetére


martonx
veterán

Én razor engine-re alapoznék, amivel Html-t generálnék, végül a renderelt Html-el már azt csinálsz amit akarsz.

Én kérek elnézést!

(#9979) petyus_ válasza martonx (#9978) üzenetére


petyus_
senior tag

Nem rossz ötlet, ahhoz legalább értek is :D.

Azt nem tudom ezzel kapcsolatban, hogy html-ből hogy csinálok nyomdaképes (300dpi-s) képet/pdf-et, ebben esetleg van tipped?

(#9980) martonx válasza petyus_ (#9979) üzenetére


martonx
veterán

Fogsz egy headless browsert, annak beküldöd a html-t, és csinálsz egy screenshotot az eredményről.
Erre talán a legegyszerűbb megoldás ez: hardkoded/puppeteer-sharp: Headless Chrome .NET API (github.com)

Én kérek elnézést!

(#9981) petyus_ válasza martonx (#9980) üzenetére


petyus_
senior tag

Köszi, végül megoldódott a dolog. Kipróbáltam a fontot chrome-ban, és nem működött. Kiderült, hogy a chromium nem támogatja az SVG fontot (van egy 10 éves bug :DDD ), Firefox amúgy tudja. Viszont támogatja a COLR táblás fontokat, megcsináltam így a fontot, és így már megjelenítette. De közben a bugból megtudtam, hogy a chromium Skia-t használ a rendeleréshez, úgyhogy kipróbáltam a rajzolós appomat, és az is müködik vele. Úgyhogy egyelőre maradok ennél a változatnál.

Köszi az inputot, előtte napokig nem tudtam rájönni mi lehet a megoldás :))

[ Szerkesztve ]

(#9982) rgeorge


rgeorge
addikt

Üdvözlet! Van egy xml fájl, amihez érkezne egy kiegészítő xml, ami azonos struktúrájú, de új ill. megváltozott elemeket tartalmaz (primitív beállítás fájlról van szó).
Sehol sem találtam olyan módszert, ami megbízhatóan tudná merge-lni az új fájlt a régibe. Eddig max. hozzáfűzést tudtam elérni, ahol duplán szerepeltek a módosuló elemek.
C# és .NET Framework 4.8.
Van valakinek ismerete működő megoldásról?

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#9983) sztanozs


sztanozs
veterán

Hirtelenjeben pythonra talaltram megoldast:
https://stackoverflow.com/a/32597683

update: na itt van ket c#:
https://stackoverflow.com/a/19022895
https://stackoverflow.com/a/29804233

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9984) dqdb válasza rgeorge (#9982) üzenetére


dqdb
nagyúr

Az ilyet úgy érdemes megoldani, hogy az eredeti XML az alap, az új pedig XDT transzformációkat tartalmaz, azaz kap pár attribútumot, hogy mit kell adott node-dal kezdeni. Bár ez a leírás a web.config-ra vonatkozik, de jól bemutatja a XML módosítási lehetőségeket, a dokumentációját pedig itt találod. Ha pedig egy nem létező típusú transzformációra van szükséged, akkor azt könnyen bele tudod tenni.

Maga a C# kód alapesetben nagyon egyszerű, ezt saját loggerrel és saját transzformációkkal lehet elbonyolítani.

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#9985) rgeorge válasza sztanozs (#9983) üzenetére


rgeorge
addikt

Köszönöm, egyik sem volt jó... Megoldom másképp, mert pár 10 soros xml-ért már ennyi időt sem volt érdemes beleölni.

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#9986) sztanozs válasza rgeorge (#9985) üzenetére


sztanozs
veterán

:DDD

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9987) cigam


cigam
félisten

Találkoztatok már ilyennel?
A WEBoldal azt mondja sikeresen bejelentkeztem, de a VS csak nem enged tovább.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#9988) sztanozs válasza cigam (#9987) üzenetére


sztanozs
veterán

Esetleg:
[link] vagy [link]/[link]

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9989) cigam válasza sztanozs (#9988) üzenetére


cigam
félisten

Végül a 3. link mentén töröltem a GitHub fiókot, aztán újra felvettem, és most működni látszik.
Köszönöm!

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#9990) rgeorge


rgeorge
addikt

Üdvözlet. Frissült a Visual Studio 2022 17.8.1-ra a héten, lehet, hogy ezzel van összefüggésben.
Ha ugyanazt a projektet (.NET Framework 3.5 Console) létrehozom más-más mappában, akkor egészen érdekes különbség lesz.
Az egyikben a debugger ezt mutatja a Main-be lépve:

A másikban meg ezt:

A két mappa között csak annyi a különbség, hogy a másodikban van ékezet is. A második nem csak ebben más, olyan, mintha átváltana C++-ra.
Ebben a mappában sok kis projekt van, sosem volt ilyen gond. Onnan derül ki, hogy debug közben a null értékű objektumok értékét nullptr-ként mutatta.
Találkozott ilyennel már más is?

[ Szerkesztve ]

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#9991) rgeorge


rgeorge
addikt

Találtam egy VS 2022 17.6.0-t is egy másik gépen, ott nincs ilyen eltérés. Megnézem majd egy friss telepítéssel is.

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#9992) martonx válasza rgeorge (#9990) üzenetére


martonx
veterán

Addig olvastam, hogy .Net framework 3.5 :) Ez komoly? Miért?

Én kérek elnézést!

(#9993) rgeorge válasza martonx (#9992) üzenetére


rgeorge
addikt

Nyilván az új projekt azért ez, mert egy régi projektben találtam ezt a hibát, így ilyet is hoztam létre. .NET Framework 4.8-al is ugyanez van.
Most downgrade-ltem 17.7.7-re, és ott nincs ez az eltérés, tehát valóban a 17.8 hozta el.

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#9994) martonx válasza rgeorge (#9993) üzenetére


martonx
veterán

.Net 8-nál tartunk. Számomra már az is csoda, hogy VS2022-vel ezek az ősi kódok még futnak. Gyanítom már senki sem teszteli komolyan, hogy újabb és újabb VS-el minden spéci 15-20 éves kód hibátlanul működjön.
Azért én a helyedben küldenék egy github issue-t a fejlesztőknek, hátha nem legyintenek rá, az őskövület kód problémájára.

Én kérek elnézést!

(#9995) rgeorge válasza martonx (#9994) üzenetére


rgeorge
addikt

Beküldtem az issue-t a Visual Studio-n keresztül, sikerült reprodukálniuk, ment a mérnöki csapathoz tovább.

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#9996) martonx válasza rgeorge (#9995) üzenetére


martonx
veterán

Na, szuper, örülök, hogy a megfelelő helyre irányíthattalak! :) :R

Én kérek elnézést!

(#9997) Keem1


Keem1
addikt

Srácok, ebben kérnék helpet.
Részletek: .NET 6.0 console, VS Code

Output Windowson:
NewGen v1.1.124.1223
Album
Artist
Customer
Employee
Genre
Invoice
InvoiceLine
MediaType
Playlist
PlaylistTrack
Track
Press any key...

Output Linuxon:
NewGen v1.1.124.1223
Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'System.Diagnostics.DiagnosticSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
at MySql.Data.MySqlClient.MySqlConnection.OpenAsync(Boolean execAsync, CancellationToken cancellationToken)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at MySql.Data.MySqlClient.MySqlConnection.OpenAsync(Boolean execAsync, CancellationToken cancellationToken)
at MySql.Data.MySqlClient.MySqlConnection.Open()
at NewGen.NewGenHelper.MySQLHelper.Tables() in C:\Users\kincs\source\repos\NewGen\NewGenHelper.cs:line 193
at NewGen.NewGen.Main() in C:\Users\kincs\source\repos\NewGen\Program.cs:line 34
Félbeszakítva

Kód:
public List<string> Tables()
{
var tables = new List<string>();
using (var conn = new MySqlConnection(ConnectionString))
{
conn.Open();
using(var cmd = new MySqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "SHOW TABLES;";
var reader = cmd.ExecuteReader().Cast<IDataRecord>();
tables = reader.Select(x => x.GetString(0).ToString()).ToList();
}
conn.Close();
}
return tables;
}

Mi okozhatja az exceptiont Linuxon úgy, hogy Windowson nem?
Így fordítottam: dotnet publish -c Release --arch arm --os linux

Előre is köszi :R

[ Szerkesztve ]

(#9998) martonx válasza Keem1 (#9997) üzenetére


martonx
veterán

Mondjuk nem tud kapcsolódni az adatbázishoz?

Én kérek elnézést!

(#9999) Keem1 válasza martonx (#9998) üzenetére


Keem1
addikt

De, tud, és meglepő a megoldás: nem volt elég windowson kompilálni, linuxon kellett. :W

(#10000) Keem1


Keem1
addikt

Sracok, egy nagy anomaliaba utkoztem.
Csinaltam egy szuz ASP Razor porjectet, en populaltam fel, de hibaba utkoztem.

Alapesetben ezt kapom:
PS C:\Users\ik\source\repos\nuup> dotnet run -c Release -f net6.0
Building...
C:\Program Files\dotnet\sdk\7.0.405\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.Shared.targets(213,5)
: error NETSDK1022: Duplicate 'Content' items were included. The .NET SDK includes 'Content' items from your project di
rectory by default. You can either remove these items from your project file, or set the 'EnableDefaultContentItems' pr
operty to 'false' if you want to explicitly include them in your project file. For more information, see https://aka.ms
/sdkimplicititems. The duplicate items were: 'wwwroot\css\site.css'; 'wwwroot\errors\error.html'; 'wwwroot\robots.txt'
[C:\Users\ik\source\repos\nuup\nuup.csproj::TargetFramework=net6.0]
The build failed. Fix the build errors and run again.
PS C:\Users\ik\source\repos\nuup>

Ha beteszem ezt: <EnableDefaultContentItems>false</EnableDefaultContentItems> akkor viszont minden oldal 404-es lesz, a full kezdolapot is beleertve.

Ez a csproj file-m:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFrameworks>net6.0;net7.0</TargetFrameworks> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <EnableDefaultContentItems>false</EnableDefaultContentItems> </PropertyGroup> <ItemGroup> <Folder Include="Data\"/> <Folder Include="Models\"/> <Folder Include="Classes\"/> <Content Include="wwwroot\**\*"> <CopyToPublishDirectory>Always</CopyToPublishDirectory> </Content> </ItemGroup></Project>

Mit rontok el? :F

(#10001) skyrush7


skyrush7
aktív tag

Sziasztok!
Problémáma ütköztem, nemrég kezdtem el .NET Core-ban egy foglaló oldalt lérehozni a vendégházunkhoz. Az alapfunkcionalitás rendben, tudnak dátum szerint foglalást leadni, amely mentésre kerül a DB-be.
A probléma ott van, hogy jó lenne valamilyen szinten szinkronizálni Booking és Szállás.hu-val. Mindkettőhöz van egy iCal link.
Ezt hogyan tudnám beintegrálni a .NET-es oldalamba? Lényeg, hogy ne engedjen az oldal foglalni olyan dátumra, ahova már Bookingon keresztül le lett adva foglalás.
Sajnos neten nem nagyon találtam anyagot hozzá, aránylag kezdő is vagyok még. Az iCal.NET libraryra rátaláltam, de nem nagyon találtam oktatóanyagot hozzá, hogyan is lehetne használni.
Tudtok valami tippet adni merre induljak el?

(#10002) martonx válasza skyrush7 (#10001) üzenetére


martonx
veterán

Szia!

Ahogy látom a booking.com-nak van nagyon profi API-ja: Booking.com APIs and Documentation
Szallas.hu esetében viszont nem igazán találtam ilyet, én a helyedben felvenném velük a kapcsolatot, szeretném hinni, hogy van nekik is API-juk.
iCal-t a helyedben nem erőltetném, API integráció irányába mennék.

Én kérek elnézést!

(#10003) skyrush7 válasza martonx (#10002) üzenetére


skyrush7
aktív tag

Köszönöm szépen!

(#10004) rgeorge


rgeorge
addikt

Üdvözlet! Van egy .NET Framework 4.5 32 bites projekt (Visual Studio 2012), amiből az egyik assembly-nek a nevét sikerült magyarul megadni, azaz hosszú ékezetes betűket is tartalmaz.
Egy hónapja ez az alkalmazás nem indul el bizonyos eszközökön, ahol előtte igen. A program egyszerűen nem indul el, pontosabban elindul, majd az első UI felület (bejelentkezés) megjelenése előtt leáll, kivétel nem lép fel, az eseménynaplóba csak egy ucrtbase.dll hiba kerül bele.
Ha módosítjuk az assembly nevét magyar ékezetes betűk nélkülire, a program rendben működik. Találkozott más is ilyennel? Jó lenne az okokat is kideríteni, kereséssel nem találtam hasonló jelenséget.

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#10005) fatal` válasza rgeorge (#10004) üzenetére


fatal`
titán

Első körben megnézném a rendszer területi és nyelvi beállításait. Különösen a nem unicode programok nyelvét, ez szokott angolon maradni és okozhat ilyen anomáliákat.

Más kérdés, hogy mégis miért kell a namespaceben/assemblyben ékezetet használni?

Copyright © 2000-2024 PROHARDVER Informatikai Kft.