16

当我在 Visual Studio 2012 中创建一个简单的 SharePoint 2013 项目并想部署它时,它部署得很好,但 Dll 不在全局程序集缓存中。在高级选项卡中,我添加了要部署的项目程序集。

在此处输入图像描述

在不同的测试中,我将Assembly Deployment Target选项设置为GlobalAssemblyCache,并将Assembly In Package设置为True,并从第一个场景中描述的包中删除 dll 。

在此处输入图像描述

项目 .NET 固件版本为 4.5。机器是 64 位虚拟机,Windows Server 2008。我还尝试将项目的平台目标更改为 X64 和任何 CPU,但没有运气。

我曾尝试使用 gacutil 工具手动添加 dll,但它也没有部署。它可能与4.5框架有关吗?我也不能手动部署 4.5 中制作的任何 Dll,但所有其他工作。

有任何想法吗?谢谢。

4

2 回答 2

36

我在 c:\windows\assembly 中检查它,它应该在那里,对吧?

不,这是 .NET 版本 1.0 到 3.5 中 GAC 的目录。它在 .NET 4.0 及更高版本中移动,现在位于 c:\windows\microsoft.net\assembly。您可以使用 Explorer 浏览该目录,不再使用扁平化 GAC 目录视图的 shell 扩展处理程序。如果程序集不包含任何非托管代码,则从 GAC_MSIL 目录开始,从那里定位实际文件几乎没有问题。

于 2012-10-22T12:49:16.913 回答
0

我有这个问题,我认为 IISReset 修复了它?

我对我的事件接收器进行了更改。在包中,我像您一样从项目输出中添加了程序集。我在项目属性上将“在包中包含程序集”设置为 False。

我部署了,但我的事件接收器更改看起来不像正在发生。

我运行了 IIS 重置,然后可以看到我的更改。

于 2018-04-27T14:37:54.543 回答