C#, Hello World ja komentorivi

1. Mikroluokissa: N-levyn liittäminen

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ä:

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.

Onko tästä olemassa parempia ohjeita? En ole saanut komentoja toimimaan. VPN-yhteys on luotu, mutta miten saan yhdistettyä N-levyyn kotikoneen?

VL: sehän ole tuo edellä oleva net use komento konetoriviltä. Mutta on kokonaan eri asia kannattaako kotoa ruveta edes leikkimään näidne levyjen kanssa. Editorin asennusohjeissa on neuvottu miten vastaavia komentoja voi tehdä suoraan omalle koneella ja se on fiskumpaa, koska silloin ne ovat paljon nopeampia kuin hitaan verko yli. Jos niitä lainkaan enää tarvitsee kun siirrytäään Visual Studioon.

16 Sep 19 (edited 17 Sep 19)

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 n:\bin) lisätä hakupolkuun:

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

2. Hello World

Luo itsellesi hakemisto C:\MyTemp\OMATUNNUS\ohj1. 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):

Kun kirjoitan cmd C:1\201901>npp HelloWorld.cs Niin vastaus on: ‘npp’ is not recognized as an internal or external command, operable program or batch file. Minulla on notepad++ asennettuna koneelle. Ja helloworld.cs niminen tiedosto olemassa

VL: Puhutko omasta koneesta vai yliopiston koneesta. Ja säähän et saa kirjoittaa tuota väkästä etkä sen vasenta puolta. Mutta jos olet omass akoneessa, niin tuo npp:hän oli editorin asennusohjeen yhteydessä tehtä npp.bat “skripti” joka täytyy olla josskain hakmeistossa joka on polussa (path). Onko nuo vaiheet tehty Notepad++:n asennuksen yhteydessä. Jos ei, pitää editori käynnistää ihan Windowsin kautta ja huoellla tallentaa sisältö oikeaan paikkaan.

Teen omalla koneella. En ole ilmeisesti tehnyt bat juttua oikein. Olen nyt yrittänyt sitä 50min ohjeiden avulla, mutta ei vain onnistu.

18 Sep 19 (edited 18 Sep 19)
public class HelloWorld
{
    public static void Main(string[] args)
    {
        System.Console.WriteLine("Hello World!");
    }
}

Aluksi meidän pitää löytää hakemisto, josta csc.exe löytyy. Vaihtoehtoja voi olla esimerkiksi:

VS2019 Community asennettuna:

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

Mikroluokat viikolla 37:

c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn

Vanhat asennukset: c:.NET.0.30319

HUOM! Tällä hetkellä yliopiston tietokoneilla ei ole Visual Studio 2019 asennusta. Mikäli käytät yliopiston konetta, käytä polkua

    c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\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.

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 edellinen ei toimi, voit kokeilla myös:

$env:Path += ";c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\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% 

Jos edellinen ei toimi, voit kokeilla myös:

PATH=c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn;%path%

Jos haluat muutoksen pysyväksi, lisää polku myös pysyvästi PATH-hakupolkuun (miten?) katsomalla nykyinen PATH muuttujan arvo ja lisää sen perään ; ja

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

Käännä sitten ohjelma kirjoittamalla komentoriville

csc HelloWorld.cs

Aja ohjelma kirjoittamalla

.\HelloWorld.exe

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

.\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:

& "\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.