首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我的代码在构建时引用了一个程序集,我需要分发它吗?

如果我的代码在构建时引用了一个程序集,我需要分发它吗?
EN

Stack Overflow用户
提问于 2013-06-26 20:41:41
回答 2查看 45关注 0票数 0

我有一些在两种类型的机器上运行的通用代码:

  • 服务器类型计算机上的.NET 2.0完整框架
  • Windows设备上的.NET 2.0紧凑框架

我有一个正在添加到整个框架设备中的特性,但是这段代码不会在紧凑的框架设备上运行。

还需要将引用的dll分发到Windows设备吗?

考虑过这个问题后,由于代码位于不同的文件中,我将忽略Windows解决方案中的文件,但我仍然希望从技术角度回答上面的问题。

标记

EN

回答 2

Stack Overflow用户

发布于 2013-06-27 03:11:11

如果使用早期绑定引用库(右键单击项目->添加引用),则需要将其与代码一起分发。这是因为代码的元数据将引用引用库。如果引用的库以相同的方式引用其他库,则更有趣的是,它们也应该可供CLR定位和加载。

但是,如果您使用反射、发现和在运行时执行绑定等技术,您将能够加载应用程序,而不需要CLR找到库直到您的代码需要它(通过反射调用它)。

票数 0
EN

Stack Overflow用户

发布于 2013-08-14 11:20:58

实际上,即使有时使用某些代码,也不必使用:-)例如,如果使用常量或枚举,则不需要dll,除非使用使用枚举类型的代码。因此,通常情况下,如果您有代码,这是不运行的,您可能不会分发dll。但有时,如果代码是这样的,则可能会出现类型为typeloadexception。

代码语言:javascript
复制
if (condition)
  use type from another library
else
 use type from current library

如果条件不是某个编译相关常数,JITer可能不会做出正确的假设,该代码将不会运行,然后它将尝试加载该类型,然后就会出现异常。在这种情况下,我会使用条件编译,如下所示

代码语言:javascript
复制
#if COMPACT
//use type here
#else
//not use type here
#endif
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17330076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档