Упакуйте проект C # в dll или другую библиотеку

1

У меня есть проект С# со многими классами. Можно ли упаковать этот проект (приложение 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. Они пусты

  • 0
    Какие языки?
  • 0
    не имеет значения, может быть, C # снова, но из других проектов
Теги:
package

4 ответа

1
Лучший ответ

когда вы создаете проект, вы получаете dll в соответствующей папке bin.

Вы можете использовать эту DLL в другом проекте, добавив ссылку на эту DLL. После этого вы можете использовать его методы.

  • 0
    но он пустой, я проверяю его с помощью Dll Viewer, и он ничего не показывает
  • 0
    проверьте внутри папок debug или obj. Это должно быть создано где-то ..
Показать ещё 13 комментариев
0

Библиотеки классов, созданные с помощью .NET(которые в конечном итоге являются DLL), могут использоваться только из других приложений или библиотек .NET, или - если вы хотите включить его - из COM.

Насколько я знаю, невозможно создать DLL с С#, методы которой вы можете вызвать из неуправляемого приложения (C, С++ и т.д.). Нет так называемых "экспортированных методов", поэтому DLL-просмотрщик показывает, что он пуст. Повторите попытку с помощью .NET Reflector или аналогичного декомпилятора, и вы увидите, что методы отображаются.

0

Свойства проекта Visual Studio → Приложение → Тип вывода: Библиотека классов

  • 0
    а как достать длл?
  • 0
    DLL находится в папке вашего проекта или в папке релиза. Если это выглядит пустым, потому что ваши классы определены как частные или внутренние. Вам следует поменять имена, которые вы хотите видеть за пределами вашей dll, на public.
Показать ещё 4 комментария
0

Да, вы можете создать проект библиотеки классов. Просто имейте в виду, что вы создаете dll с управляемым кодом, если вы хотите использовать его, например, С++, вам нужно сделать некоторые дополнительные материалы.

  • 0
    Я знаю, что возможно создать проект библиотеки классов. Вопрос в том, где можно создать библиотеку из проекта (консольное приложение) или нет?
  • 0
    @Sergey Вы можете, но вам придется создать дополнительный проект с библиотекой классов в качестве выходного типа и ссылаться на тот же код, что и консольное приложение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню