This gives you another .NET module named WriteString.netmodule. Now you're finally ready to execute AL.EXE. But you're not "out of the woods" yet. There are a couple of parameters that must be passed to AL.EXE that you need to know about.
Predictably, the first paramaters you pass to AL.EXE are the names of the .NET modules to be linked. So this gives you a starting for our (still incomplete) command:
AL writestring.netmodule csgetstring.netmodule
Then you need to tell AL.EXE what you want as a resulting executable file with the /out parameter. I used combo.exe. Now we have:
AL writestring.netmodule csgetstring.netmodule /out:combo.exe
Although you might think AL.EXE would be smart enough to know you want an EXE since you named the output file that way, it isn't. You also need a target parameter:
AL writestring.netmodule csgetstring.netmodule /out:combo.exe /target:exe
Finally, keep in mind that one of the items of information that is missing in the modules is where the program should start - that is, the entry point. For that you need a main parameter. And herein lies another story. THIS one is case sensitive. So you need to check your source and make sure you add /main:WriteString.Main. (Not writeString.Main or Writestring.Main or any other slightly different version. Welcome to C#. It's case sensitive too.)
Our completed AL.EXE command is:
AL writestring.netmodule csgetstring.netmodule /out:combo.exe /target:exe /main:WriteString.Main
If you have done everything just right and kept your left toes crossed but not your right toes, you should get a resulting file named combo.exe which will execute just like the original. There are additional complications, but this will give you at least a flavor of what you're up against, plus a boost up to get started.

