У меня есть проект С# со многими классами. Можно ли упаковать этот проект (приложение Console) в библиотеку (возможно, dll или что-то еще) и вызвать все функции определенного класса с других языков программирования?
EDIT:
Вот код:
using System;
using System.Text;
namespace Test { class Program { public int aplusb(int a, int b) { return a + b; }
public void hello()
{
Console.WriteLine("Helo world");
}
}
} Код > И иерархия в папке проекта: - Свойства - Рекомендации - bin - Отладка --- Test.dll --- Test.exe --- Test.pdb --- Test.vshost.exe --- Test.vshost.exe.manifest - obj - x86 ---Отлаживать ---- TempPE ----- DesignTimeResolveAssemblyReferencesInput.cache ----- Test.csproj.FileListAbsolute.txt ----- Test.dll ----- Test.pdb ----- ResolveAssemblyReference.cache - Program.cs
Я проверил оба Test.dll из bin и obj. Они пусты
когда вы создаете проект, вы получаете dll в соответствующей папке bin.
Вы можете использовать эту DLL в другом проекте, добавив ссылку на эту DLL. После этого вы можете использовать его методы.
Библиотеки классов, созданные с помощью .NET(которые в конечном итоге являются DLL), могут использоваться только из других приложений или библиотек .NET, или - если вы хотите включить его - из COM.
Насколько я знаю, невозможно создать DLL с С#, методы которой вы можете вызвать из неуправляемого приложения (C, С++ и т.д.). Нет так называемых "экспортированных методов", поэтому DLL-просмотрщик показывает, что он пуст. Повторите попытку с помощью .NET Reflector или аналогичного декомпилятора, и вы увидите, что методы отображаются.
Свойства проекта Visual Studio → Приложение → Тип вывода: Библиотека классов
Да, вы можете создать проект библиотеки классов. Просто имейте в виду, что вы создаете dll с управляемым кодом, если вы хотите использовать его, например, С++, вам нужно сделать некоторые дополнительные материалы.