Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中的静态链接?_C#_Azure_Static Linking - Fatal编程技术网

C#中的静态链接?

C#中的静态链接?,c#,azure,static-linking,C#,Azure,Static Linking,WindowsAzure客户端库非常大(几MB),我有一个相当小的项目(大约几百KB),它只使用其中的几个函数。有没有一种方法可以让我在构建时链接这些函数,这样生成的DLL就不会变得过于臃肿,也不必在运行时链接这些函数 类似这样的东西,但我得到的印象是捆绑在整个DLL中 谢谢 编辑:因为最终可交付DLL的大小有外部限制,所以将其膨胀到这个程度是绝对的最后手段-我知道的唯一其他选择就是逐字复制我使用的代码。一句话:否 请记住,即使您只使用少数函数,库中也可能有许多其他函数是这些函数使用的,您甚至不

WindowsAzure客户端库非常大(几MB),我有一个相当小的项目(大约几百KB),它只使用其中的几个函数。有没有一种方法可以让我在构建时链接这些函数,这样生成的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个是真正必要的。两者都不是一个完美的世界,它只是取决于系统设计者认为什么是较小的邪恶。