"Method Not Found" 时间 运行 错误(来自不同项目的调用方法)

"Method Not Found" Error at Run Time (Calling method from different project)

问题

我有一个包含 10 多个项目的解决方案。最重要的是:

我注意到这些项目包含大量 models/classes,这些内容在所有项目中都重复出现。为了减少重复代码,我创建了一个新项目来存放共享代码。不幸的是,我现在在 运行 时收到此错误:

"Method not found: [Name of method you tried to call]"

对于共享项目中的任何方法。值得注意的是,我有:

如果我将共享项目作为 'Additional Assembly' 添加到 'Package.Package' 配置文件中,我就能使 SharePoint 解决方案正常工作。但是,这会将共享项目添加到全局程序集缓存 (GAC),并且每次更新共享项目时仍然会遇到问题。


问题

如何部署引用共享项目中代码的单个项目,而不会在运行时崩溃?


相关:

尝试的方法


WCF:[已解决]

  • 从全局程序集缓存中验证(并删除)DLL
  • 已验证该项目是 "added as a reference" 到 WCF 项目
  • 将 "Copy to Local" 设为 true,并使用其他项目的 DLL 部署 WCF
  • 共享项目依赖的任何程序集也必须部署吗?
  • 不确定共享项目的 类 的 "web.config" 值如何 accessed/modified 既然它是一个 DLL?

查看此处获取 GAC 相关帮助: Drag and drop a DLL to the GAC ("assembly") in windows server 2008 .net 4.0


Windows 服务: [已解决]

  • WCF 服务使用相同的步骤


SharePoint:[已解决]

  • 打开 SharePoint "Package.package" 文件
  • Select "Advanced Tab"
  • 在 "Additional Assemblies" 下,单击 "Add" 和 "Add assembly from project output"
  • Select源项目
  • Select "Web Application"
  • 点击"Okay"

SharePoint 注释: 部署为 "Web Application" 而不是 "Global Assembly Cache" 似乎已被弃用,但我收到了与此选项最一致的结果。部署 SharePoint 解决方案时,该命令需要一个额外的标志来抑制此警告:

SharePoint 2013 管理 Shell:

Update-SPSolution 
-Identity [NameOfProject.wsp] 
-LiteralPath [PathToWSPToDeploy.wsp] -GACDeployment 
**-FullyTrustBinDeployment**