Please to interact with this component.

{}

C#, Hello World ja komentorivi (Windows)

Tehtävän tekeminen Linuxissa/Macissa: kääntäminen komentoriviltä

Huomaa että ohjeissa puhutaan useissa kohti Agoran mikroluokista ja syksyllä 2020 todennäköisesti ohjauksia ei pidetä läsnäopetuksena, joten ohita sopivasta kappaleet jossa on sama mikroluokka.

1. Mikä ihmeen komentorivi?

Jos komentorivi ei ole tuttu, niin tutustu ehdottomasti ensimmäiseksi komentoriviohjeisiin: https://tim.jyu.fi/view/kurssit/tie/ohj1/tyokalut/komentorivi

Siellä on kuvattu miten komentorivi avataan, ja yleisimpiä komentoja Windowsille, Linuxille ja Macille.

2. Mikroluokissa: N-levyn liittäminen

Tämä luku koskee pääasiassa Agoran mikroluokkia, n:-levy ei toimi suoraan kotikoneissa, mutta ei sitä välttämättä tarvitakaan!

N:-verkkolevylle on yliopiston verkossa tallennettu muun muassa kääntämiseen ja tekstieditorin käyttöön tarvittavia komentoja. Tarkista, että N:-verkkolevy on liitettynä (eli "mountattuna") esimerkiksi kirjoittamalla PowerShelliin (voit copy pastettaa tuosta alta)

dir n:

Jos tulee virheilmoitus dir : Cannot find drive. A drive with the name 'n' does not exist., klikkaa työpöydällä kuvake Yhdista-N. Jos kuvaketta ei ole, voit mountata levyn komentoriviltä:

Kotikonetta liittäessä N:-verkkolevyyn komentorivi näyttää kirjautumisen jälkeen, että “Määritetty verkkoresurssi tai -laite ei ole enää käytettävissä.”

VL: Huom! Otsikkona oli “Mikroluokissa”, eli tätä ei voi tehdä muualla. Äärimmäisellä kikkailulla voisi olla mahdolista VPN:än avulla, mutta ei maksa vaivaa. Lisäsin tuohon punaisella…

02 Sep 20 (edited 02 Sep 20)
net use N: \\fileservices.ad.jyu.fi\customershare-multi$\it-ohjelmointi

Omalla koneellasi voit kirjoittaa vastaavia komentoja (npp, csm, csk, jne) vaikka C:\bin-hakemistoon, ja lisätä tuon kansion niin sanottuun PATH-hakupolkuun niin komennot ovat käytettävissä mistä vain.

Em toimii mikroluokassa ja omassa koneessa mikäli se on yliopiston verkossa (jonka voi tehdä kotoakin VPN-yhteyden avulla). Mutta muualta kuin mikroluokan koneelta käytettynä net use pyytää käyttäjätunnusta ja salasanaa ja siinä on käyttäjätunnuksen perään kirjoitetaan myös domain tyyliin:

TUNNUS@ad.jyu.fi

Jos esimerkiksi komento npp ei toimi, pitää paikka johon tuo on kirjoitettu (eli mikroluokissa n:\bin tai kotona se mihin olet sen tehnyt) lisätä hakupolkuun:

cmd:
    path=n:\bin;%path%
    
PowerShell:
    $env:Path += ";n:\bin"
# hello

3. Hello World

Luo itsellesi mikroluokissa hakemisto C:\MyTemp\OMATUNNUS\ohj1. Kotona hakemisto voisi olla vaikkapa C:\kurssit\ohj1\paate\paate1. Siirry tuonne hakemistoon komentorivillä. Tee ohjauksen tehtävät tänne hakemistoon.

Kirjoita jollakin editorilla tiedosto nimeltä HelloWorld.cs, vaikkapa Notepad++:lla (kirjoita komentoriviltä npp HelloWorld.cs jos olet tehnyt npp:n ohjeiden mukaan tai jos et ole, niin käynnistä tekstieditori muuten ja ole huolellinen että tallennat oikeaan paikkaan):

public class HelloWorld
{
    public static void Main()
    {
        System.Console.WriteLine("Hello World!");
    }
}

3.1 Aluksi meidän pitää löytää hakemisto, josta csc.exe löytyy.

Vaihtoehtoja voi olla esimerkiksi:

VS2019 Community asennettuna (todennäköisin vaihtoehto):

c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn

VS2019 Enterprise asennettuna:

c:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn
    

Oikean hakemistonimen näkee kun kirjoittaa komentoriville aluksi

dir "c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn\csc.exe"

Jos csc.exen tiedot tulostuu, niin tuo hakemisto on oikea, muuten pitää kokeilla seuraavaa hakemistoa. Tai voi kirjoittaa PowerShellissä:

dir c:/csc.exe -s

tai Command Promptissa (cmd):

dir c:\csc.exe /s

ja katsoo missä on uusin versio, eli jossa esiintyy se asennetun Visual Studion vuosiluku (yleensä joku yllä olevista esimerkeistä).

Jos VisualStudio on asennettu, niin yleensä omassa koneessa tuo Community on oikea, mikroluokissa taas Enterprise tai myös

c:\Windows\Microsoft.NET\Framework\v4.0.30319

toimii HelloWorldin kanssa, mutta ei välttämättä lumiukon kanssa (eli mikroluokissa voi mennä suoraan kirjoitetuilla ohjeilla).

Erityisesti kotikoneella korvaa jatkossa olevissa esimerkeissä (myös Lumiukko) aina tarvittaessa tuo hakemistonimi c:\Windows\Microsoft.NET\Framework\v4.0.30319 sillä, mistä csc.exe löytyi. Älä kuitenkaan käytä hakemistonimeä, jossa on jono 64, vaikka csc.exe sieltä löytyisikin.

# path

3.2 Seuraavaksi lisätään se hakupolkuun:

Jos haluat csc-ohjelman löytyvän komentoriviltä aina eikä vain tällä istunnolla, niin katso ohjeet csc-kääntäjän lisäämiseksi pysyvästi PATH-hakupolkuun.

Jos riittää että komento toimii vain tässä istunnossa, niin...

PowerShellissä lisää kääntäjä hakupolkuun kirjoittamalla seuraava rivi PowerShelliin ja paina Enter.

$env:Path += ";c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn\"

Jos käytät komentoriviä (cmd.exe) PowerShellin sijaan, kirjoita

PATH=c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn\;%PATH% 

3.3 Ohjelman kääntäminen

Käännä sitten ohjelma kirjoittamalla komentoriville

csc HelloWorld.cs

Aja ohjelma kirjoittamalla PowerShelliin seuraavaa

.\HelloWorld.exe

Tosin ympäristömuuttujan pathext ansiosta riittää myös

.\HelloWorld

CMD:ssä riittää pelkästään

HelloWorld.exe

tai

HelloWorld

HUOM! Jos PowerShellissä joutuu antamaan hakemiston, jonka nimessä on välilyöntejä tai ohjelman nimessä on välilyöntejä, pitää nimi sulkea lainausmerkkeihin. Mutta sitten se on merkkijono eikä komennon nimi. Tällöin "komennon" nimen eteen pitää lisätä &-merkki (ks: PowerShell - Special Characters And Tokens).

Esimerkiksi:

& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn\csc.exe" .\HelloWorld.cs

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.