我有一个包含许多类的C#项目。是否可以将此项目(控制台应用程序)打包到库中(可能是dll或其他任何东西)并从其他编程语言中调用一个明确类的所有函数?
编辑:
这是代码:
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"); } }
public void hello() { Console.WriteLine("Helo world"); } }
And the hierarchy in project folder: - Properties - References - bin -- Debug --- Test.dll --- Test.exe --- Test.pdb --- Test.vshost.exe --- Test.vshost.exe.manifest - obj -- x86 ---Debug ----TempPE ----- DesignTimeResolveAssemblyReferencesInput.cache ----- Test.csproj.FileListAbsolute.txt ----- Test.dll ----- Test.pdb ----- ResolveAssemblyReference.cache - Program.csI checked both Test.dll from bin and obj. They are empty
答案 0 :(得分:1)
在构建项目时,您将在相应的bin文件夹中获取dll。
您可以通过添加对此dll的引用在其他项目中使用此dll。之后,您可以使用它的方法。
答案 1 :(得分:0)
Visual Studio项目属性 - >申请 - >输出类型:类库
答案 2 :(得分:0)
是的,您可以创建一个类库项目。请记住,您正在使用托管代码创建一个dll,如果您想在c ++中使用它,则必须执行some extra stuff.
答案 3 :(得分:0)
使用.NET创建的类库(最终是DLL)只能从其他.NET应用程序或库中使用,或者 - 如果您选择启用它 - 来自COM。
据我所知,不可能使用C#创建一个DLL,然后可以从非托管应用程序(C,C ++等)调用它们的方法。没有所谓的“导出方法”,这就是DLL查看器将其显示为空的原因。使用.NET Reflector或类似的反编译器再次检查,您将看到显示的方法。