C# 作为嵌入式资源管理DLL

C# 作为嵌入式资源管理DLL,c#,.net,dll,embedded-resource,C#,.net,Dll,Embedded Resource,将所有必需的托管dll作为嵌入式资源捆绑到.NET库项目中,以便只发送一个dll,这是一种好做法吗? 背景: 我已经创建了一个API作为.NET dll(在C#中),它运行良好。但是该库对其他托管库(大约15个DLL)有相当多的依赖性,因此我也需要分发这些库 当我的API的用户创建了一个应用程序后,他们必须再次确保将所有这些DLL与应用程序一起分发。对我来说,如果他们只考虑一个DLL就更好了。 使用嵌入式DLL的主要缺点是,在动态加载之前,它们必须解压缩到一个临时文件夹中,这可能会或不会有性能和

将所有必需的托管dll作为嵌入式资源捆绑到.NET库项目中,以便只发送一个dll,这是一种好做法吗?

背景: 我已经创建了一个API作为.NET dll(在C#中),它运行良好。但是该库对其他托管库(大约15个DLL)有相当多的依赖性,因此我也需要分发这些库

当我的API的用户创建了一个应用程序后,他们必须再次确保将所有这些DLL与应用程序一起分发。对我来说,如果他们只考虑一个DLL就更好了。


使用嵌入式DLL的主要缺点是,在动态加载之前,它们必须解压缩到一个临时文件夹中,这可能会或不会有性能和健壮性问题。

围绕这一点有很多问题。如果您希望加载特定于平台的依赖项(即x86与x64),或者使用您的API的应用程序确实如此,会发生什么情况?这是否意味着您也需要在包中包含特定的x86与x64程序集?它很快就有毛了

<>你应该考虑使用这些类型的场景。然后,将所有依赖项打包在一起


实际上,这是API消费者要解决的问题,而不是API生产者的问题。如果您的API有很多外部依赖项,那么它可能不那么受欢迎,但是您必须在那里决定什么才是API成功的真正关键。

围绕这一点有很多问题。如果您希望加载特定于平台的依赖项(即x86与x64),或者使用您的API的应用程序确实如此,会发生什么情况?这是否意味着您也需要在包中包含特定的x86与x64程序集?它很快就有毛了

<>你应该考虑使用这些类型的场景。然后,将所有依赖项打包在一起


实际上,这是API消费者要解决的问题,而不是API生产者的问题。如果您的API有很多外部依赖项,那么它可能不太受欢迎,但您必须在那里决定什么才是API成功的关键。

关于您的第一条评论,我的库已经依赖于仅为x86的非托管DLL,因此我没有为x64构建的选项。关于您的第一条评论,我的库已经依赖于仅限x86的非托管DLL,因此我没有为x64构建的选项。