C#中的静态链接?
WindowsAzure客户端库非常大(几MB),我有一个相当小的项目(大约几百KB),它只使用其中的几个函数。有没有一种方法可以让我在构建时链接这些函数,这样生成的DLL就不会变得过于臃肿,也不必在运行时链接这些函数 类似这样的东西,但我得到的印象是捆绑在整个DLL中 谢谢C#中的静态链接?,c#,azure,static-linking,C#,Azure,Static Linking,WindowsAzure客户端库非常大(几MB),我有一个相当小的项目(大约几百KB),它只使用其中的几个函数。有没有一种方法可以让我在构建时链接这些函数,这样生成的DLL就不会变得过于臃肿,也不必在运行时链接这些函数 类似这样的东西,但我得到的印象是捆绑在整个DLL中 谢谢 编辑:因为最终可交付DLL的大小有外部限制,所以将其膨胀到这个程度是绝对的最后手段-我知道的唯一其他选择就是逐字复制我使用的代码。一句话:否 请记住,即使您只使用少数函数,库中也可能有许多其他函数是这些函数使用的,您甚至不
编辑:因为最终可交付DLL的大小有外部限制,所以将其膨胀到这个程度是绝对的最后手段-我知道的唯一其他选择就是逐字复制我使用的代码。一句话:否 请记住,即使您只使用少数函数,库中也可能有许多其他函数是这些函数使用的,您甚至不知道
您不能这样做,因为您没有访问所有依赖项的权限。还请记住,这些依赖项甚至可能驻留在另一个DLL中,出于同样的原因,您需要包含整个DLL。您要查找的内容听起来很像。 不幸的是,它是唯一的预览,目前只适用于设备的应用商店。像这样的声明 我们将继续发展和改进.NET应用程序范围内的本机编译 可以在internet上找到,但没有关于web apps\Azure的特定信息
在那之前,答案是No,意译为@BradleyDotNET:No.@spender转换为一个答案,这个答案说的是相同的:)+1对于Jeffrey Richter的技术,考虑到反射将允许您在运行时创建链接器不可能知道的程序集引用,静态链接不起作用。因此,即使我使用的函数集,甚至是间接使用的函数集,只是库提供的所有功能的一小部分,我也需要引入一组未使用和不相关的东西,以便使用它们中的任何一个?@bfops yes。设计者选择将所有这些封装到一个库中,而实际上您对此无能为力。如果是你的库,你可以把函数和它们的依赖项复制到你的项目中,但既然不是,你就陷入了困境?在C或C++中,我可以确信我可以静态链接一个库,而实际使用的函数最终只能在最终的可执行文件中结束。我的选择是大量的博客或代码复制。C#不是为了静态链接那样工作。正是由于这个原因,许多项目被分割成许多相互关联的DLL,因此您只能包含您需要的DLL。当然,这也带来了一个问题,那就是必须在100个选项中找出6个是真正必要的。两者都不是一个完美的世界,它只是取决于系统设计者认为什么是较小的邪恶。