首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不同的.NET程序集引用取决于32-64位

的问题是指在开发.NET应用程序时,根据目标平台的位数选择合适的程序集引用。下面是完善且全面的答案:

在.NET开发中,程序集是一组相关的代码和资源的集合,它们被编译成一个单独的可执行文件(.exe)或动态链接库(.dll)。程序集引用是指在项目中引用其他程序集,以便在代码中使用其中的类型和功能。

在选择程序集引用时,需要考虑目标平台的位数,即32位或64位。这是因为在不同的位数平台上,程序集可能有不同的版本和实现方式。下面是针对32位和64位平台的不同情况:

  1. 32位平台:
    • 对于32位平台,应选择32位的程序集引用。这些程序集通常以“x86”为后缀,表示针对32位平台编译和优化。
    • 32位程序集可以在32位和64位平台上运行,但在64位平台上会以32位模式运行,可能无法充分利用64位平台的性能和资源。
  2. 64位平台:
    • 对于64位平台,应选择64位的程序集引用。这些程序集通常以“x64”为后缀,表示针对64位平台编译和优化。
    • 64位程序集只能在64位平台上运行,无法在32位平台上运行。

需要注意的是,如果在项目中引用了错误的程序集,可能会导致编译错误或运行时错误。因此,在选择程序集引用时,应根据目标平台的位数进行正确的选择。

以下是一些相关名词的概念、分类、优势、应用场景、推荐的腾讯云相关产品和产品介绍链接地址:

  1. .NET程序集(Assembly):
    • 概念:.NET程序集是一组相关的代码和资源的集合,它们被编译成一个单独的可执行文件(.exe)或动态链接库(.dll)。
    • 分类:.NET程序集可以分为主程序集(Main Assembly)和附属程序集(Satellite Assembly)。
    • 优势:程序集提供了代码的封装和复用,可以方便地在不同的项目中引用和调用。
    • 应用场景:适用于开发.NET应用程序,包括桌面应用、Web应用和移动应用等。
    • 腾讯云产品推荐:腾讯云云服务器(CVM)提供了.NET开发环境,可用于部署和运行.NET程序集。产品介绍链接:https://cloud.tencent.com/product/cvm
  2. 32位和64位平台:
    • 概念:32位和64位是指计算机处理器的数据位数,决定了处理器一次能处理的数据量大小。
    • 分类:根据处理器的位数,可以将平台分为32位平台和64位平台。
    • 优势:64位平台相比32位平台具有更大的内存寻址空间和更高的计算性能。
    • 应用场景:适用于需要处理大量数据或进行复杂计算的应用,如大型数据库、科学计算和图形渲染等。
    • 腾讯云产品推荐:腾讯云云服务器(CVM)提供了32位和64位的操作系统镜像,可根据需求选择合适的平台。产品介绍链接:https://cloud.tencent.com/product/cvm

请注意,以上推荐的腾讯云产品和产品介绍链接仅供参考,具体选择应根据实际需求和情况进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core 引用其他程序项目里面的 Controller 控制器

我将控制器 Controller 按照不同业务,分为多个不同项目,我需要在路由里面调度到多个不同项目的控制器 只需要在 Startup ConfigureServices 方法,调用 AddControllers...添加控制器,再加上额外程序即可,如下面代码,下面代码 WeatherForecastController 是定义在另一个程序类 public void ConfigureServices...,我推荐使用 typeof 方法获取程序里面某个控制器,然后通过 Type 获取程序方式传入程序。...传入程序里面定义控制器将会被加入到路由调度 ? 如上图项目创建方式,创建一个 ASP.NET Core 项目,在里面放一个控制器,将其他文件都删除。...接着再创建一个 ASP.NET Core 项目,删除掉所有的控制器,接着引用刚才第一个创建项目。

1.1K50
  • .NET 程序加载上下文

    我们编写 .NET 应用程序会使用到各种各样依赖库。我们都知道 CLR 会在一些路径下帮助我们程序找到依赖,但如果我们需要手动控制程序加载路径的话,需要了解程序加载上下文。...---- 程序加载上下文 当你向应用程序域中加载一个程序时,可能会加载到以下四种不同上下文中一种: 默认加载上下文(the Default Load Context) 加载位置加载上下文(the...以下意外行为列表照抄自文档 Best Practices for Assembly Loading: 如果已加载一个具有相同标识程序,则即使指定了不同路径,LoadFrom 仍返回已加载程序...带来问题 .NET 加载程序这种机制可能让你程序陷入一点点坑:你可以让你程序加载任意路径下一个程序(dll/exe),并且可以执行其中代码,但你不能依赖那些路径中程序特定类型或接口等...,我们引用了一个 NuGet 包 Ben.Demystifier。

    32430

    2018-9-17-64和32程序注册表有什么不同

    我们都知道对于windows应用来说,注册表是很重要部分。所有的com组件和部分应用程序运行都会依赖于注册表。 ---- 那么问题来了。我们软件进程有x86和x64两个互不兼容版本。...而软件注册表位置(比如com组件clsid)是固定。那么对于这种情况该怎么确保找到对应版本软件或dll路径呢?...不同版本注册表处理 对于这种情况,windows提供了在64系统提供了对32软件注册表项目支持。...里面涵盖了同名软件32版本相同注册表路径。只是区别在于对应dll或者exe物理路径换成了32版本路径。 ?...多版本软件注册表注意点 确认软件或者dll版本是否是64和32不兼容 安装电脑是否是64电脑 在64电脑下需要同时写64(不带Wow6432Node节点)和32版本(带Wow6432Node

    68830

    解决T4模板程序引用五种方案

    VS 2010采用了与VS2008不同程序引用解析机制。本篇文章为你介绍在VS2010下5种不同程序引用方式。...目录 一、添加程序引用解决不了问题 二、将引用程序集安装到GAC 三、利用VSPublicAssemblies目录 四、指定程序具体路径...没错,这是一种解决方案,如果被引用程序具有强签名的话。有一点需要注意是,T4模板引用某个安装于GAC程序时候,在指令下不能指定文件扩展名(.dll)。...如果被引用程序被没有被签名,GAC方式则不能使用,在这种情况下你需要指定程序文件所在位置,最直接的当然就是指定程序文件绝对路径。...,因为在团队开发中,每个开发人员用于存放同一个程序地址可能不同,在这种情况下你可以采用环境变量方式。

    82870

    msbuild 使用 ProduceOnlyReferenceAssembly 创建作为引用仅公开成员程序

    ,为了做一些有趣业务,期望只是包含程序公开成员定义,如公开方法和公开属性和枚举等,但是不要包含具体实现逻辑代码。...可以让输出程序 dll 或 exe 里面只是包含了公开成员定义,但不包含具体实现代码。...这样程序是仅仅作为被引用程序使用,不能被实际调用 下面来告诉大家如何构建这样程序,构建有两个方法,第一个是放在 csproj 项目文件里面。...咱可以通过在构建时候,修改构建命令来打出仅作为引用程序,如执行以下代码 msbuild /p:ProduceOnlyReferenceAssembly=true 此时构建出来 dll 就是只读程序...如果不想从源代码生成,期望从 DLL 里面重新导出,请参阅 dotnet 使用 Refasmer 从现有的 DLL 里面导出公开成员组装出新仅作为引用用途程序 本文会经常更新,请阅读原文

    76620

    IIncrementalGenerator 增量 Source Generator 生成代码入门 判断程序引用关系

    本文将告诉大家如何在 IIncrementalGenerator 增量 Source Generator 生成代码里面,在 Roslyn 分析器里面判断两个程序是否存在引用关系 先上核心代码实现,核心代码就是调用以下代码进行判断程序引用关系...else { // 没有访问过,获取引用程序是否存在引用关系...Modules 从而获取到 ReferencedAssemblySymbols 也就是当前程序引用所有程序,再判断引用程序里面是否包含期望被引用程序 对于间接引用程序来说,需要进行遍历才可以判断到...,但是此时需要处理程序循环引用问题。...本文这里采用传入一个字典方法解决这个问题 获取当前分析器所分析项目的引用程序,可以通过 Compilation SourceModule ReferencedAssemblySymbols

    16910

    IIncrementalGenerator 增量 Source Generator 生成代码入门 获取引用程序所有类型

    本文告诉大家如何在使用 IIncrementalGenerator 进行增量 Source Generator 生成代码时,如何获取到当前正在分析程序引用所有的程序,以及引用程序里面的所有类型...这项技术可以用在生成导出类型相关需求上,比如我想导出我当前程序里面所有引用程序继承于 IFoo 接口所有类型,即可采用本文介绍方法 核心逻辑是在 Compilation 里面拿到 SourceModule...属性 这里 ReferencedAssemblySymbols 属性就是当前程序引用程序集了 在这些程序上枚举所有程序语义类型即可获取到所有的类型 以下是详细例子 为了方便描述本文技术实现...,咱需要先从 context 里面的 CompilationProvider 获取到引用程序,代码如下 [Generator(LanguageNames.CSharp)] public class...就是引用 Lib 程序里面的所有类型。

    26320

    .NET 使用 ILMerge 合并多个程序,避免引入额外依赖

    我们有多种工具可以将程序集合并成为一个。打包成一个程序可以避免分发程序时候带上一堆依赖而出问题。 ILMerge 可以用来将多个程序集合并成一个程序。...这个程序引用了一个 NuGet 包 Ben.Demystifier。为此带来了三个额外依赖。...,这样分发程序时候只需要一个程序即可。...如果你希望在你项目当中进行尝试,可以把所有 /log 参数之后那些程序名称改为你自己名称。 那么在编译时候使用命令 msbuild /t:ILMerge 就可以完成程序合并了。...,如果是控制台程序,则为 exe /out 输出文件名称(或路径)(此路径可以和需要合并程序名称相同,这样在合并完之后会覆盖同名称那个程序) /log 所有需要合并程序名称(或路径) /targetplatform

    2K30

    使Spring.NETIOC容器支持动态加载程序

    当我们发布系统时,有时候希望不用关掉应用程序就能完成发布,但Spring.NETApplicationContext是从AppDomain.CurrentDomain中加载程序集中创建对象...当然,我们还需要一个FileSystemWatcher来监控程序目录,当目录中程序发生变化时,再把新程序复制到新临时目录,然后再加载新临时目录中程序文件。...当然,已经加载程序在AppDomain.CurrentDomain没有被销毁前,是不能卸载,所以经过几次程序更新后,我们AppDomain.CurrentDomain中就会存在几个不同版本程序...为了区分出哪个程序才是最新,我们还需要一个全局dictionary来存放最新程序,这个dictionary以程序名字作为key,以最新加载后程序作为value。...AppDomain.AssemblyResolve事件了,因为.net framework认为这个程序它是可以识别的,不需要再触发这个事件了。

    69240

    ​一款开源.NET程序反编译、编辑和调试神器

    咱们今天主要内容是讲讲dnSpyEx(dnSpyEx是dnSpy项目的非官方Fork维护版本)这个开源.NET程序反编译、编辑和调试工具该如何使用。...4款免费且实用.NET反编译工具 .NET反编译神器ILSpy怎么用?...dnSpyEx dnSpyEx是dnSpy(该代码库已于2020年12月21日被所有者归档为只读状态)项目的非官方Fork维护版本,一款开源、功能强大.NET反编译工具和调试器,可用于在没有源代码情况下编辑和调试程序...支持调试 .NET Framework、.NET Core 和 Unity 程序。 支持编辑 .NET Framework、.NET 和 Unity 程序。.....TestSample\bin\Debug\net8.0 使用工具调试程序集中代码 使用工具编辑程序集中代码 使用工具编辑程序集中IL指令 项目源码地址 更多项目实用功能和特性欢迎前往项目开源地址查看

    23410

    .NET 使用 ILRepack 合并多个程序(替代 ILMerge),避免引入额外依赖

    这个程序引用了一个 NuGet 包 Ben.Demystifier。为此带来了三个额外依赖。...,这样分发程序时候只需要一个程序即可。...如果你希望在你项目当中进行尝试,可以把后面那些代表程序名称改为你自己项目中依赖程序名称。 现在在编译时候使用命令 msbuild /t:ILRepack 就可以完成程序合并了。...这些需要合并参数中,第一个参数是主程序,而后续其他都是待合并程序。区别主程序和其他程序原因是输出程序需要有名称、版本号等等信息,而这些信息将使用主程序集中信息。...而且这些依赖将成为合并后程序依赖,不会合并到程序集中。

    1.4K50

    .NET 程序如何获取图片宽高(框架自带多种方法不同性能)

    .NET 程序如何获取图片宽高(框架自带多种方法不同性能) 发布于 2020-02-17 08:32...更新于 2020-02-17 00:47 获取图片宽高方法有很多种,本文介绍 .NET 中获取图片宽高几种方法并评估其性能。...分别运行以上四个方法各 100 次(可以发现大量 GC): ? 现在,使用不同图片运行多次。 分别运行以上四个方法各 10 张图片: ?...对于不同图片运行不同次数: 消耗时间(ms) Metafile Bitmap BitmapImage BitmapDecoder 1次 175 107 71 2 10次 998 980 83 20 100...可以发现,对于 .NET 框架中原生自带获取图片尺寸方法来说: System.Windows.Media.Imaging.BitmapDecoder 整体性能是最好 对于同一张图,System.Windows.Media.Imaging.BitmapImage

    2.4K20

    .NET 将多个程序集合并成单一程序 4+3 种方法

    编写 .NET 程序时候,我们经常会在项目的输出目录下发现一大堆文件。除了我们项目自己生成程序之外,还能找到这个项目所依赖一大堆依赖程序。...有没有什么方法可以把这些依赖和我们程序集合并到一起呢? 本文介绍四种将程序和依赖打包合并到一起方法,每一种方法都有其不同原理和优缺点。...下面说一些 .NET Core 3.0 发布程序一点扩展——.NET Core 3.0 中对于发布程序三种处理方式可以放在一起使用: 裁剪程序(Assembly Trimmer) 提前编译(Ahead-of-Time...使用 ILMerge / ILRepack,是在 IL 级别对程序进行了合并。 我们可以通过下面一张图来感受一下后三种原理上不同。...表格之外还有一些特别需要说明: ILRepack 额外支持修改 WPF 编译生成 Baml 文件,将资源引用路径修改成新程序路径。

    1.1K30

    仅反射加载(ReflectionOnlyLoadFrom) .NET 程序,如何反射获取它 Attribute 元数据呢?

    平时我们获取一个程序或者类型 Attribute 是非常轻松,只需要通过 GetCustomAttribute 方法就能拿到实例然后获取其中值。...但是,有时我们仅为反射加载一些程序时候,获取这些元数据就不那么简单了,因为我们没有加载目标程序集中类型。 本文介绍如何为仅反射加载程序读取 Attribute 元数据信息。...---- 仅反射加载一个程序 使用 ReflectionOnlyLoadFrom 可以仅以反射方式加载一个程序。...Attribute(例如获取程序版本号) Assembly.GetCustomAttributesData() 得到是一个 CustomAttributeData 列表,而这个列表中每一项都与普通反射中拿到特性集合不同...)编译出来程序默认是不带 AssemblyVersionAttribute

    2.3K30

    不同程序,名称空间类名和方法签名都一样方法,如何调用

    有时候,你可能会遇到这样问题,不同程序,名称空间类名和方法签名都一样方法,如何调用。本文将介绍如何通过别名方式来解决这个问题。...创建两个不同程序 我们来创建两个不同程序,但是他们名称空间一样: dotnet new classlib -o ClassLibrary1 -n ClassLibrary1 dotnet new...我们可以通过别名方式来解决这个问题,首先修改项目文件,设置两个程序别名: <ProjectReference...很早之前 Rx.net 正对 System.Linq.Async 进行了支持,而后来系统也内置了 System.Linq.Async。你会在使用 Rx.net 时候遇到这个问题。...总结 通过别名方式,我们可以解决不同程序,名称空间类名和方法签名都一样方法,如何调用问题。

    1.3K20

    不同程序,名称空间类名和方法签名都一样方法,如何调用

    有时候,你可能会遇到这样问题,不同程序,名称空间类名和方法签名都一样方法,如何调用。本文将介绍如何通过别名方式来解决这个问题。...创建两个不同程序 我们来创建两个不同程序,但是他们名称空间一样: dotnet new classlib -o ClassLibrary1 -n ClassLibrary1 dotnet new...我们可以通过别名方式来解决这个问题,首先修改项目文件,设置两个程序别名: <ProjectReference...很早之前 Rx.net 正对 System.Linq.Async 进行了支持,而后来系统也内置了 System.Linq.Async。你会在使用 Rx.net 时候遇到这个问题。...总结 通过别名方式,我们可以解决不同程序,名称空间类名和方法签名都一样方法,如何调用问题。 参考 extern alias (C# Reference)^1

    17020

    为 .NET Core Framework 程序开启大内存感知(LargeAddressAware),使 32 程序支持最多 4GB 用户空间内存

    ✔️ 4GB 原理 我在 2017 年写一篇博客(使 32 程序使用大于 2GB 内存)中就已经介绍过 32 程序开启大内存感知原理和方法了,不过因为一开始我自己也懂得不多,所以写得比较简单...32 寻址空间只有 4GB 大小,于是 32 应用程序进程最大只能用到 4GB 内存。然而,除了应用程序本身要用内存,操作系统内核也需要使用。...应用程序使用内存空间分为用户空间和内核空间,每个 32 程序用户空间可独享前 2GB 空间(指针值为正数),而内核空间为所有进程共享 2GB 空间(指针值为负数)。...所以,32 应用程序实际能够访问内存地址空间最多只有 2GB。 在应用程序 PE 头上,有一个应用程序是否感知大内存标记 LARGEADDRESSAWARE。...因为 .NET Core 框架下编译时,是直接忽略 Prefer32Bit !.NET Core 下大内存感知确实是有了,但生成却是 AMD64 程序,无法在 32 系统下运行。

    65210
    领券