运行时“找不到方法”错误(来自不同项目的调用方法)

时间:2016-03-14 19:10:20

标签: c# .net wcf sharepoint gac

问题

我的解决方案包含10个以上的项目。最重要的是:

  • SharePoint 2013
  • WCF服务
  • Windows服务
  • 各种测试,Python和Powershell相关项目

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

“未找到方法:[您尝试呼叫的方法名称]”

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

  • 为所有使用它的项目添加了对新项目的引用
  • 此错误仅发生在RUNTIME

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


问题

如何部署在共享项目中引用代码的单个项目,而不会在RunTime中爆炸?


相关:

1 个答案:

答案 0 :(得分:1)

方法尝试


WCF: [已解决]

  • 从全局程序集缓存中验证(并删除)DLL
  • 已验证该项目已“作为参考”添加到WCF项目
  • 将“Copy to Local”转为true,并部署WCF w /其他项目的DLL
  • 还必须部署共享项目所依赖的任何程序集吗?
  • 不确定共享项目的类如何访问/修改“web.config”值,因为它是一个DLL?

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

<小时/> Windows服务: [已解决]

  • 用于WCF服务的相同步骤

<小时/> SharePoint: [已解决]

  • 打开SharePoint“Package.package”文件
  • 选择“高级标签”
  • 在“其他装配”下,单击“添加”和“从项目输出添加装配”
  • 选择源项目
  • 选择“网络应用程序”
  • 点击“Okay”

SharePoint Notes:部署为“Web应用程序”而不是“全局程序集缓存”似乎已被弃用,但我使用此选项可获得最一致的结果。部署SharePoint解决方案时,该命令需要一个额外的标志来禁止此警告:

SharePoint 2013 Management Shell:

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