Вы можете использовать компилятор C # напрямую для создания файлов DLL и EXE. Компилятор является частью установки .NET Framework, поэтому для его запуска не требуется Visual Studio.
Файлы проекта Visual Studio - это просто удобный способ организации исходных файлов, зависимостей и настроек компилятора. Visual Studio - хороший графический интерфейс поверх этих файлов проекта.
Использование следующих файлов:
C:.
│ build.bat
│ Program.cs
│
├───ProjectA
│ ClassA1.cs
│ ClassA2.cs
│
└───ProjectB
ClassB1.cs
ClassB2.cs
ClassA1.cs:
public class ClassA1
{
public static void SayHello()
{
System.Console.WriteLine("ClassA1 says Hello World!");
}
}
ClassA2.cs:
public class ClassA2
{
public static void SayHello()
{
System.Console.WriteLine("ClassA2 says Hello World!");
}
}
Program.cs:
class Program
{
static void Main()
{
System.Console.WriteLine("Program says Hello World!");
ClassA1.SayHello();
ClassA2.SayHello();
}
}
Мы строим все с помощью компилятора C #, csc.exe, используя пакетный скрипт build.bat:
REM Building my project using the C# compiler
REM NOTE: Add the path to the compiler to the path variable:
REM set path=%path;%windir%\Microsoft.NET\Framework\v4.0.30319
csc /out:A.A1.dll /target:library ProjectA\ClassA1.cs
csc /out:A.A2.dll /target:library ProjectA\ClassA2.cs
csc /out:Program.exe /r:A.A1.dll,A.A2.dll Program.cs
При этом создаются две библиотеки DLL ( A.A1.dll и A.A2.dll ) и одна программа ( Program.exe ), которая использует библиотеки DLL. как показано ниже:
C:.
│ A.A1.dll
│ A.A2.dll
│ build.bat
│ Program.cs
│ Program.exe
│
├───ProjectA
│ ClassA1.cs
│ ClassA2.cs
│
└───ProjectB
ClassB1.cs
ClassB2.cs
Запуск программы дает следующий вывод:
C:\Temp\HelloWorld>Program.exe
Program says Hello World!
ClassA1 says Hello World!
ClassA2 says Hello World!
C:\Temp\HelloWorld>