Windows Mobile ontwikkeling zonder Visual Studio?

Pagina: 1
Acties:

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 14-09 14:43
Sinds kort heb ik een telefoon met Windows Mobile 6.1, en uiteraard wil ik daar ook m'n eigen programmaatjes voor schrijven.

Hiervoor kom ik steeds uit op de Windows Mobile 6 SDK, maar het probleem is dat deze zelfs niet aan de installatie wilt beginnen zonder een Visual Studio installatie.
Voor mijn andere ontwikkelwerk gebruik ik de Express edities, maar deze zijn niet ondersteund door de SDK.

Door verder te zoeken ben ik uitgekomen op SharpDevelop, een gratis .NET ontwikkelomgeving.
In de versie 3 beta-versies zou het .NET Compact Framework wat op windows mobile apparaten gebruikt kan worden ondersteund worden.
Ik heb dus SharpDevelop geinstalleerd, een nieuw project aangemaakt voor het .NET Compact Framework 3.5, maar ik krijg een foutmelding tijdens het compileren.
Hierover heb ik 1 topic gevonden op het SharpDevelop forum, maar zonder antwoord.
De fout lijkt een probleem te zijn bij het vinden van de Compact Framework SDK. Hiervan heb ik echter nergens een download kunnen vinden, dus ik weet niet of dit zonder de Windows Mobile SDK te vinden is.

Daarnaast ben ik ook nog uitgekomen op Pocket C#, een C# compiler die op Windows CE zou draaien. Dit heb ik verder nog niet geprobeerd (en ik zou ook liever gewoon op m'n pc het eigenlijke programmeerwerk doen), maar het lijkt er wel op dat compileren van c# voor een windows mobile apparaat dus wel mogelijk zou moeten zijn met gratis tools.

Wat ik dus zou willen weten is of er iemand dus ervaring heeft met het ontwikkelen voor Windows Mobile zonder Visual Studio, of eventueel een oplossing weet voor mijn probleem met SharpDevelop.
De oplossing moet niet noodzakelijk C#/.NET zijn, met C++ zou ik ook al tevreden zijn, maar ik vermoed dat dan nog steeds het installeren van de Windows Mobile SDK eerst zou moeten lukken.

VirtualDJ 2024 - Fast Image Resizer - Instagram


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 14-09 14:43
Bedankt voor de tip. Na 'SupportOnlyWhidbey' op 0 te zetten heb ik ook WHIDBEY_EXISTS en CF2_EXISTS op 1 moeten zetten vooraleer de installatie wilde beginnen.
Zonder dit zien de requirements er zo uit:
Afbeeldingslocatie: http://adionsoft.net/images/wm6sdk_requirements.jpg
Wat ik dus al vreemd vind is dat hij ook het .NET Compact Framework 2.0 SP1 als requirement nodig heeft. De enige download die ik echter heb kunnen vinden installeerd het Compact Framework op een apparaat, en niet op de computer zelf.

Als ik dan de aangepaste WM6SDK msi installeer, dan begint hij met het kopieren van de bestanden, maar op het einde bij de stap 'Registering with Visual Studio' eindigt hij met een foutmelding dat Visual Studio niet gevonden is.
Afbeeldingslocatie: http://adionsoft.net/images/wm6sdk_installerfail.jpg
Na op ok te drukken wordt alles weer verwijdert.

Als ik voor op ok te drukken ga kijken in C:\Program Files\Windows Mobile SDK\ dan lijkt daar trouwens ook niet de .NET Compact Framework SDK bij te zitten ofzo.
Wel een aantal headers en lib's in de map Smartphone, die dus mogelijk wel bruikbaar zijn om te gebruiken in C++, maar daar zal ik dan eerst nog een aantal voorbeeldjes voor moeten vinden, en dan nog lijkt een ARM compiler te ontbreken (die wordt dus vermoedelijk bij Visual Studio geinstalleerd)

Ik heb overigens al wel een map C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5
Die vermoedelijk ofwel met de Windows SDK, ofwel tijdens het installeren van de Compact Framework redistributable is geinstalleerd, dus daarmee snap ik nog minder waarom SharpDevelop een fout geeft.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 14-09 14:43
Vandaag nog wat verder geprobeerd. Dit keer heb ik eens geprobeerd de command line c# compiler geprobeerd.
Bij een standaard compilatie kreeg ik een boodschap als ik de .exe probeerde uit te voeren in windows mobile dat een bepaalde assembly niet gevonden kon worden.
Ik heb dan een .rsp bestand aangemaakt dat verwijst naar de dll bestanden in "C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5", en dan de c# compiler aangeroepen met de optie /noconfig zodat de standaard libraries niet gebruikt worden.
Op die manier hoopte ik een .exe te bekomen die enkel dependencies in het Compact Framework heeft.
Helaas crashed het programma nu als ik het probeer uit te voeren. (In windows op m'n computer kan ik het wel gewoon uitvoeren)

Heb ik ook een andere compiler nodig om te compileren voor het Compact Framework op win ce?
Of heb ik voor een arm processor een andere compiler nodig?

VirtualDJ 2024 - Fast Image Resizer - Instagram


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 14-09 14:43
Success!
Ik zat gisteren blijkbaar vrij dicht bij de oplossing, en via deze link ben ik er dan ook helemaal uit.
Hier dus een stappenplan voor als er iemand hier nog op zoek naar is:

Stap 1: Download en installeer de Compact Framework Redistributable
De link is voor v3.5, maar dezelfde werkwijze is ook geschikt voor v2.0, en waarschijnlijk dus ook in de toekomst voor nieuwere versies.
Deze installeert dus niet alleen het framework op je windows mobile apparaat via activesync, maar installeert ook de SDK op je PC.

Stap 2: Pak de juiste dll's voor je apparaat uit, en geef ze de juiste naam.
In de map "C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE" staan een aantal .cab bestanden. In mijn geval werkt het apparaat op de ARM architectuur, dus heb ik NETCFv35.wm.armv4i.cab gebruikt.
Deze heb ik uitgepakt naar een mapje genaamd armv4.
De namen zijn op dit moment nog allemaal short filenames, maar door de bijhorende _setup.xml te openen kan je deze stuk voor stuk hernoemen naar de juiste namen.

Stap 3: Een build script maken voor de c# command line compiler.
De basisinformatie over het gebruik van de c# command line compiler kan je op deze msdn-pagina vinden.
Ik heb dan een response file gemaakt waarin verwezen wordt naar de armv4 dll's van het compact framework.
Als test heb ik de 2 benodigde bestanden erin geplaatst voor een eenvoudige test-applicatie, maar bij het maken van complexere applicaties kan je hier best alle dll's in vermelden.
De response file ziet er dan zo uit:
code:
1
2
3
4
/r:"C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\armv4\mscorlib.dll"
/r:"C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\armv4\System.dll"
/r:"C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\armv4\System.Drawing.dll"
/r:"C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\armv4\System.Windows.Forms.dll"


Stap 5: Het compileren van het programma via de command line
code:
1
csc /noconfig /nostdlib @cf35armv4.rsp /out:test.exe /target:winexe /recurse:*.cs

Het bestand cf35armv4.rsp is de response file die we net gemaakt hebben. Ik heb deze momenteel in dezelfde map staan als de .cs broncode bestanden, maar uiteraard kan je die ook ergens anders plaatsen, mits het volledige path gespecifieerd wordt.
De /noconfig switch zorgt ervoor dat de standaard response file niet gebruikt wordt, die verwijst namelijk naar de .NET framework bestanden van het gewone .NET framework voor windows.
De /nostdlib switch is noodzakelijk omdat ook de basis (mscorlib.dll) door ons gespecifieerd wordt ipv de windows-versie te gebruiken.

Hierna kan de bekomen .exe op het apparaat gekopieerd worden en uitgevoerd worden.

Vermits het mogelijk is om via een aantal compiler-switches dit mogelijk te maken, vraag ik me trouwens af of ook Visual C# Express niet zo ingesteld kan worden dat deze dit rechtstreeks doet.
In dat geval lijkt het dus perfect mogelijk om Windows Mobile applicaties te maken zonder het gebruik van de betalende versie van Visual Studio.

VirtualDJ 2024 - Fast Image Resizer - Instagram


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 14-09 14:43
Ook in Visual C# 2008 Express is het ondertussen gelukt :)

Stap 1 en 2: Idem als hierboven

Stap 3: Start C# Express, maak een nieuw project.
-Verwijder in de Solution Explorer alle references, en bij Properties AssemblyInfo en Settings
-Bij Project->Properties->Build is er rechtsonderaan een knopje 'Advanced', vink hier 'Do not reference mscorlib.dll' aan
-Voeg nu aan de references de benodigde dll bestanded uit het armv4 mapje toe.
Als minimum zijn dit mscorlib.dll, System.dll, System.Drawing.dll, System.Windows.Forms.dll

Verder moeten ook nog een aantal lijnen code verwijdert worden die als fout worden vermeld (onder andere voor Visual Styles)
Een ander nadeel is dat ook de automatisch gegenereerde code bij het toevoegen van controls ook een aantal regels niet geschikt zijn voor windows mobile en dus moeten verwijdert worden (je krijgt wel een foutboodschap hiervoor tijdens het compileren, dus echt lastig is het niet)

In ieder geval werkte daarna de gecompileerde versie zowel in windows als in windows mobile.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Verwijderd

Dus we gaan binnenkort veel eigen programmatjes van jouw zien ;)
In ieder geval succes!

Acties:
  • 0 Henk 'm!

  • Data-base
  • Registratie: Maart 2007
  • Laatst online: 07-09 10:33
Waarom niet gewoon Visual Studio Standard/Pro? Het is iedere dollar meer dan waard.

En als je het echt niet kan betalen, kan je nog altijd een studentenversie proberen te bemachtigen. (Of een versie van internet)

Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 14-09 14:43
Data-base schreef op zondag 28 september 2008 @ 22:18:
Waarom niet gewoon Visual Studio Standard/Pro? Het is iedere dollar meer dan waard.

En als je het echt niet kan betalen, kan je nog altijd een studentenversie proberen te bemachtigen. (Of een versie van internet)
Waarom zou ik iets kopen of illegaal kopieren als de gratis versie ook prima voldoet?

Verder heb ik nog niet veel tijd gehad om ermee bezig te zijn, dus op mijn programmaatjes zullen jullie nog even moeten wachten :P

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 16:19

alienfruit

the alien you never expected

Heb je dan ook de form designer?

Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 14-09 14:43
Ja, de form designer kan je ook gewoon gebruiken.
Het enige nadeel is zoals ik al zei dat de automatisch gegenereerde code een aantal properties bevat die niet in het Compact Framework beschikbaar zijn (de waarde die standaard aan de property 'Autosize' wordt toegekend bijvoorbeeld)
Het volstaat echter om na het toevoegen van een control even de errors te bekijken en de bijhorende lijnen te verwijderen.

VirtualDJ 2024 - Fast Image Resizer - Instagram

Pagina: 1