[.NET] Error bij open van app op andere PC

Pagina: 1
Acties:
  • 136 views sinds 30-01-2008
  • Reageer

  • giveupthejoost
  • Registratie: Maart 2006
  • Laatst online: 21-03-2016
Het is tamelijk frustrerend na 3 maanden programmeerwerk een .Net (c++/CLR:pure VS2005) applicatie ontwikkelt te hebben en wanneer die de als Release gecompileerde versie op een andere willekeurige PC met daarop Win Xp + .Net Framework 2.0 + de benodigde fortran DLL's en dat ie op PC A wel werkt met dezelfde configuratie en op PC B niet!

Ik heb al verschillende dingen geprobeert, XP Sevice Pack 1 / XP Service Pack 2 machines, Verschillende frameworks installeren op verschillende machines, dus veel mogelijke combinaties geprobeerd.

Het enige nadeel is dat op de doel-pc's geen windows update gedaan kan worden. Dat is vanuit systeembeheer intern niet toegestaan.

1) Als foutmelding krijg ik (gelijk bij het aanklikken van de .exe) een Microsoft Send Error Report:
Eventtype: clr20r3 P1:programma.exe P2:... (een heleboel getallen)
P9: System.nullreferenceexeption

2) Op een ander systeem krijg ik:
Appname:programma.exe Appver:0.0.0.0 Appstamp: ... (wat nummers/letters)
Modname: Kernel32.dll ModVer: enz.
fDebug: 0 Offset: 00013887

Op de overige geteste systemen werkt het programma wel. Maar dat is dan weer niet de werkplek van de mensen die het programma moeten gaan gebruiken!

"Even windows opnieuw installeren" is helaas geen optie gezien er gewoon mensen aan de doel-pc's werken (het betreft Dell Pentium 1700 Mhz Laptops)

Op verschillende messageboards van softwareleverancies die dezelfde foutmeldingen kregen waren soms de problemen verholpen door of de System.dll en System.XML.dll (de references) met de hand te registreren. Maar op de doel PC's krijg ik na regsrvr32 System.dll de error: "System.dll was loaded, but the DLLRegisterServer entry point was not found..."

Anderzijds was het met een update van de softwareleverancier opgelost. Dus dan zou het weer in mijn eigen programma kunnen zitten.

Ik heb geen ervaringen met dit soort foutmeldingen, wellicht dat het iemand bekend voorkomt?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
De eerste foutmelding die je toont lijkt gewoon op een programmeer bug. Je zult toch op een of andere manier moeten debuggen. Probeer anders eerst eens een simpele applicatie die alleen een Messagebox of een simpele hello world frame toont te maken.

Dan kan je ieder geval uitsluiten of het aan de installatie van het .NET framework ligt. Dat regsvr32 niet werkt met de .net assemblies vindt ik overigens niet zo vreemd, en bovendien zou dat helemaal niet nodig moeten zijn als het .net framework gewoon correct geinstalleerd is.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:30

TeeDee

CQB 241

1)Een null reference exception is, zoals rwb, een programmeer fout.
2)Weet je 200% zeker dat de systemen gelijk zijn?

.Net config verschillen, verschillende versies

Als PC A, waar het wel werkt .Net 2.0 heeft en PC B niet, dan houdt het over het algemeen simpelweg op met je tool.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Dit probleem heb ik ook weleens gehad, opgelost door een reboot te doen na de framework installatie (terwijl dat volgens de setup niet hoeft) en je applicatie te registreren binnen het .net framework op de werkplek dmv een strong key.

Edit:
Ik kreeg in ieder geval ook een null reference exception, dit hoeft zeker niet aan je code zelf te liggen..

[ Voor 21% gewijzigd door Verwijderd op 03-05-2006 18:23 ]


  • giveupthejoost
  • Registratie: Maart 2006
  • Laatst online: 21-03-2016
Probleem 1 is opgelost. Mijn collega had na het installeren van .Net Framework 2.0 Framework 1.1. verwijdert. Op zich moet dit niks uitmaken lijkt me, maar hij moest daarna wel even FW2.0 even herstellen. Na dit gedaan te hebben krijgt hij ook alleen de System.nullreferenceexeption.

  • giveupthejoost
  • Registratie: Maart 2006
  • Laatst online: 21-03-2016
De System.nullreferenceexeption werd gegenereerd door een timer die wat op een object probeerde te tekenen welke nog niet bestond. (getest, eerst met een helloworld applicatie,en daarna met een try/catch om de hele main-functie heen). Waarschijnlijk is die timer processor afhankelijk, en de software op een aanzienlijk tragere PC ontwikkelt. Dat verklaart wellicht waarom hij systeemafhankelijk de exeption genereerde.
Pagina: 1