问题标签 [gac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4914 浏览

visual-studio-2008 - 如何将 Visual Studio 的“发布网站”设置为 1. 不覆盖 web.config 和 2. 提升从我的 GAC 引用的 dll 副本

我开始使用我在开发过程中从 GAC 引用的一个库。当我将它提升到网络服务器时,我希望将 dll 包含在项目 bin 目录中。我还需要我的本地和服务器 web.config 不同。在我开始使用这个库之前,我真的很喜欢使用 VS 的发布网站功能。现在它似乎正在阻碍。

0 投票
1 回答
2816 浏览

.net - COM 互操作程序集加载顺序

我在使用 Outlook 插件时遇到了非常奇怪的程序集参考问题和加载问题。以下是详细信息(说来话长:)):

我有一个旧的 Outlook 插件,使用 .Net 1.1 编写和构建。插件是使用其自己的应用程序域中的非托管 shim 加载的。使用 .Net 2.0 可以正常工作,即使用户机器上不存在 1.1。

该插件使用由 VS 2003 针对 Outlook 2000 创建的自定义 Outlook 互操作程序集,然后重建为强命名(就像我的插件一样)。

在插件项目中,我只引用了这个自定义互操作程序集,没有引用官方的 MS 互操作程序集。

当这个插件在 Outlook 2007 和 .Net 2.0 的环境中使用时,官方的 MS 互操作程序集安装在 GAC 中,出于某种原因,我看到插件加载并使用它们。

在 Connect 类的代码中,我有一个 using 指令:

这是我的自定义互操作程序集的命名空间。

在 Connect ctor 我有这些代码行(添加用于测试目的):

这输出:

Outlook.Application 完整类型为:Outlook.ApplicationClass、Interop.Outlook、Version=9.0.0.0、Culture=neutral、PublicKeyToken=4cfbdc5349cf59d8

这正是我所期望的。

问题是,当调用 OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) 时,我在日志中看到 MS 互操作(我有一个当前域的 AssemblyLoad 事件的挂钩)程序集也被加载:

输出:

程序集 Microsoft.Office.Interop.Outlook,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c 加载自:GAC

我的 OnConnection 方法是这样开始的:

这输出:

OnConnection 应用程序对象的完整类型是:Microsoft.Office.Interop.Outlook.ApplicationClass, Microsoft.Office.Interop.Outlook, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c

这真的很奇怪,你可以在下一行看到我可以成功地转换到 Outlook.Application 没有任何问题。

我已经检查过 Reflector,我的程序集不以任何方式引用 Microsoft 的互操作程序集。我的 Interop.Outlook.dll 也是如此。

那么,有人知道发生了什么吗?这些问题的答案是什么:

  1. 为什么它会加载 Microsoft 程序集?

  2. 如何在不同程序集中定义的不相关类/接口之间进行转换?

注意:我创建了一个新插件,非常简单,它什么都不做,只是加载。我可以重现这个问题,所以真的,有谁知道 CLR 如何决定加载什么互操作以及从哪里加载。除了在 GAC 中,还有其他地方(注册表???)在 COM 对象和它所需的互操作之间存在链接?

0 投票
1 回答
108 浏览

visual-studio - 部署 windowsform 客户端应用程序但缺少程序集

我正在尝试使用外部 dll 从报告应用程序中完成一个小模块。我将文件放入 bin 文件夹,但是当我使用 ClickOnce 部署应用程序并完成安装时,我发现所有外部 dll 都丢失了。例如,Microsoft.SqlServer.Types version 10.0.0.0缺少 。

有没有办法在客户端 GAC 中自动安装这些程序集?

0 投票
4 回答
4320 浏览

gac - 我的 DLL 具有强名称,但 WSPBuilder 报告它们不是

WSPBuilder

版本:0.9.8.0830 由 Carsten Keutmann GPL 许可证 2007 创建

安装和部署 [MYDLL] 无法部署解决方案 内部异常 (1):此解决方案包含一个或多个针对全局程序集缓存的程序集。您应该为将在全局程序集缓存中的任何程序集使用强名称。

0 投票
4 回答
64144 浏览

c# - 安装到 GAC 的 DLL 路径

如何获取(可能)在 GAC 中注册的 DLL 的(物理)安装路径?此 DLL 是一个控件,它可以托管在 .Net 应用程序以外的事物中(包括 VS 以外的 IDE...)。

当我使用 System.Reflection.Assembly.GetExecutingAssembly().Location 时,它会在 winnt\system32 中提供 GAC 文件夹的路径 - 或者在 VS 的设计模式下提供 VS IDE 的路径。

我需要获取实际安装物理 dll 的路径 - 或 VS 的 bin/debug 或(发布)文件夹。

原因是我需要在此文件夹中获取一个 XML 文件,其中包含在设计模式和运行时都使用的配置设置。

或者如何最好地处理这种情况?我目前有一个用于设计模式的可疑网络位置...(不要认为 ApplicationData 文件夹会删除它(但有 .Net 版本,因为它是通过 ClickOnce 安装的,并且可以使用 Clickonce 数据文件夹) )

0 投票
4 回答
338 浏览

.net - What extra steps do you take when creating MSI installers for Vista?

I have a very simple Setup project that copies three dlls into the GAC. That's all it has to do. It works fine in XP, but on a Vista machine, it errors out stating that it cannot write to the file and to check permissions. I'm sure this has to do with some impersonation nonsense in Vista, but I'm not sure how to address it.

Has anyone else encountered this, and how did you overcome it if so?

0 投票
1 回答
126 浏览

.net - GAC 包含的程序集中共享的处理

我知道在创建 DLL 并将项目声明为“共享”(C# 中的静态)时,它们在第一次调用时被实例化,然后该对象引用作为单个引用继续存在。

因此,一旦设置了共享字符串属性,就可以再次调用以检索相同的值。然后,线程安全是应用程序域中的一个主要问题。

在应用程序域之外会发生什么。如果我们将程序集放在全局应用程序缓存 (GAC) 中,将存在多少个实例?

例如,GAC'ed .dll 中名为“MyFileName”的静态属性。

然后我们有两个应用程序调用 GAC 的 .dll。将存在多少个“MyFileName”实例?应用程序一对 MyFileName 的更改是否会复制到应用程序二使用的值?

0 投票
2 回答
252 浏览

c# - 来自 Visual Studio 的 Gac 多个项目

我们目前在 Visual Studio 中将“gacutil /i $(TargetPath)”作为外部工具,它适用于 gac'n 单个项目。

我希望能够选择多个项目并对它们进行 gac,因此我将一个批处理脚本放在一起进行测试。

当我从命令行对其进行测试时,它看起来应该可以工作。然后,当我将它连接为“MultiGac.bat $(TargetPath)”并选择多个项目并尝试它不起作用时。

有没有人编写过任何工具来完成,例如使用插件或外部工具进行品尝?也使用 regsvcs 怎么样?

谢谢

0 投票
10 回答
107645 浏览

visual-studio - 如何从 Visual Studio 引用 GAC 中的 dll?

此程序集位于 GAC 中:Microsoft.SqlServer.Management.RegisteredServers.dll

如何在 Visual Studio 中添加对此程序集的引用?

我可以在 c:\windows\assembly\ 中查看文件

0 投票
2 回答
384 浏览

security - 将自定义字段类型部署到 bin 目录

如此处所述 自定义字段类型(以及它们引用的任何 dll?)必须部署到全局程序集缓存。为什么,部署到 bin 目录可能会出现什么问题?我正在尝试通过编写 CAS 策略来保护我的代码,并且由于我的字段控件使用了很多由我的其他代码共享的帮助方法,这似乎是一个阻碍。

到目前为止,我在 bin 部署中发现的唯一问题是,当该功能被停用然后使用 STSADM 重新激活时,我收到一条错误消息,指出我的字段类型未正确安装。使用 –force 开关或通过 GUI 激活似乎工作得很好。