Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# GAC 32位与64位_C#_Visual Studio 2010_64 Bit_Gac_Gacutil - Fatal编程技术网

C# GAC 32位与64位

C# GAC 32位与64位,c#,visual-studio-2010,64-bit,gac,gacutil,C#,Visual Studio 2010,64 Bit,Gac,Gacutil,我一直在寻找一段时间,试图更好地理解这一点,但没有找到任何直接的答案 我有一个组件需要添加到GAC中。我正在运行64位Windows 7,为了解决一个问题(SSIS 2005无法识别DLL),我正在尝试确保在正确的GAC中注册了DLL(.NET 4.0) 下面是我的问题: 64位和32位GAC在Windows 7中的物理位置在哪里?我知道C:\Windows\assembly,但不确定这是哪一个,另一个在哪里 我应该使用哪个版本的gacutil向64位GAC添加程序集?32位GAC?我知道C:\

我一直在寻找一段时间,试图更好地理解这一点,但没有找到任何直接的答案

我有一个组件需要添加到GAC中。我正在运行64位Windows 7,为了解决一个问题(SSIS 2005无法识别DLL),我正在尝试确保在正确的GAC中注册了DLL(.NET 4.0)

下面是我的问题:

  • 64位和32位GAC在Windows 7中的物理位置在哪里?我知道C:\Windows\assembly,但不确定这是哪一个,另一个在哪里

  • 我应该使用哪个版本的gacutil向64位GAC添加程序集?32位GAC?我知道C:\ProgramFiles(x86)\Microsoft Visual Studio 10.0\VC,我假设这是32位的,但不确定64位gacutil在哪里

  • 什么决定了应用程序在哪个GAC中查找程序集?我假设这是由应用程序是64位还是32位决定的,但我想知道是否还有更多

  • 提前谢谢

    更新:

    在按照ShaneBlake的回答深入研究之后,我记得.NET2.0和.NET4.0GAC位于不同的位置。因此:

    .NET 2.0 GAC:
    c:\windows\assembly
    (32位和64位?)

    .NET 4.0 GAC
    c:\windows\Microsoft.NET\assembly\GAC\u 32
    (仅32位)
    c:\windows\Microsoft.NET\assembly\GAC\u 64
    (仅64位)

    c:\windows\Microsoft.NET\assembly\GAC_MSIL
    (32位和64位?

    gacutil.exe应根据编译方式将.dll安装到正确的位置。您应该可以在此处找到该文件:
    %ProgramFiles%\Microsoft SDK\Windows\v7.0A\bin\NETFX 4.0 Tools\

    .NET 4有自己的程序集文件夹(
    c:\windows\Microsoft.NET\Assembly
    ),其中包含
    \GAC\u 32
    \GAC\u 64
    目录。。。安装文件后,您将在此处找到这些文件


    希望这对Windows 10有帮助。

    C:\ProgramFiles(x86)\Microsoft SDK\Windows\v7.0A\Bin


    gacutil在客户端机器上可用吗?我似乎记得只有安装了SDK它才可用。@David:是的。它被认为是一个开发工具,因此您必须安装SDK。@David我同意。在我们的web应用程序中,我更喜欢将它们放在
    \AppLocalResources
    中,这样它们就可以部署在
    \bin
    中,而且我总是知道我使用的是哪个版本…@jrh好吧,我已经7年没搞砸了。但是,是的,gacutil没有太多的外部依赖性。祝你好运@3Dave刚刚回来报告,是的,将x86和x64版本的gacutil复制/粘贴到测试PC上肯定有效。请注意,如果您正在分发应用程序,则无法在客户端计算机上使用gacutil。VS installer/deployment项目将允许您在正确的位置安装程序集。有一件事我一直在想,有没有理由不使用您拥有的绝对最新SDK?令人困惑的是,我在Windows10上有v7.0A,在Windows7上有v10.0A;SDK版本有任何影响吗?也许是向后兼容?其他功能?@jrh当我们恢复僵尸线程时:是的,向后兼容性是不使用最新SDK的主要原因。如果您需要部署到Win7,使用特定于RS5的SDK不会让您成为任何朋友。