将dll部署到GAC

Jos*_*ana 3 .net dll sharepoint gac

我们有一个Sharepoint 2010解决方案,我们正在尝试部署到生产环境.

我们使用Visual Studio 2010开发了这个解决方案,我们已经创建了几个项目,这些项目产生了许多dll.

访问其中一个Web部件时,我们收到以下错误.

编译所请求的文件或其中一个依赖项时发生错误.类型'xxxx'在未引用的程序集中定义.您必须添加对程序集'xxx,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = xxxx'的引用.

为了安装dll - 我将它们拖放到GAC中.这是一个好方法吗?这可能是问题的原因吗?也许有更好的方式安装到GAC?或者他们需要按特定顺序安装?首先没有依赖的那个?

这是日志文件中的完整错误:

System.Web.HttpCompileException:c:\ Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\6f2f2743\7b5d4663\App_Web_rxpractioncommonwpusercontrol.ascx.12f7e65c.q7c1p6i0.0.cs(134):error CS0012 :类型'xxxx'在未引用的程序集中定义.您必须添加对程序集'xxxx,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = fe560f99f37381ef'的引用.位于System.Web.Compilation.Compilation上的System.Web.Compilation.BuildProvidersCompiler.PerformBuild()的System.Web.Compilation.AssemblyBuilder.Compile(),System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath)上的System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath虚拟路径) virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildI ... a47a805d-765d-429e-b080-fe031b3e4fac

谢谢,

约瑟夫

Den*_*rge 5

您应该使用Visual Studio 2010为SharePoint 2010解决方案创建WSP包.您可以将引用的程序集包含在主程序包的一部分中.为此,请双击SharePoint项目中的"包",然后转到"高级"选项卡.从这里,您可以将外部程序集包含在WSP中,或自动包含解决方案中其他项目的输出.

如果您正在引用可由多个WSP解决方案共享的程序集,请注意这一特殊警告:当撤回WSP时,无论另一个WSP是否还包括程序集,WSP中的所有包含程序集也会收回.

我建议的共享程序集最佳实践是创建一个独立的WSP解决方案,它只包含程序集.创建一个新的空SharePoint项目.单击解决方案资源管理器中的项目,然后使用F4查看属性窗格.将"Include assembly in package"设置为false,将"Assembly Deployment Target"设置为GlobalAssemblyCache.然后双击该包,并转到高级选项卡以添加您的程序集引用.

您最终将使用多个WSP来部署您的解决方案,但这有助于以可靠的方式处理依赖关系.

您永远不应该使用手动将程序集添加到GAC作为生产部署方法!