"Method Not Found" 时间 运行 错误(来自不同项目的调用方法)
"Method Not Found" Error at Run Time (Calling method from different project)
问题
我有一个包含 10 多个项目的解决方案。最重要的是:
- SharePoint 2013
- WCF 服务
- Windows 服务
- 各种测试,Python,和 Powershell 相关项目
我注意到这些项目包含大量 models/classes,这些内容在所有项目中都重复出现。为了减少重复代码,我创建了一个新项目来存放共享代码。不幸的是,我现在在 运行 时收到此错误:
"Method not found: [Name of method you tried to call]"
对于共享项目中的任何方法。值得注意的是,我有:
- 为所有使用它的项目添加了对新项目的引用
- 这个错误只发生在运行时
如果我将共享项目作为 'Additional Assembly' 添加到 'Package.Package' 配置文件中,我就能使 SharePoint 解决方案正常工作。但是,这会将共享项目添加到全局程序集缓存 (GAC),并且每次更新共享项目时仍然会遇到问题。
问题
如何部署引用共享项目中代码的单个项目,而不会在运行时崩溃?
相关:
- WCF Method not found after signing an assembly
- 我的共享程序集已签名(需要使用 SharePoint)
- Fault Exception - Method not found
- 正在尝试部署 GAC 安装;更喜欢部署在 BIN 文件夹中
- Drag and drop a DLL to the GAC ("assembly") in windows server 2008 .net 4.0
尝试的方法
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**
问题
我有一个包含 10 多个项目的解决方案。最重要的是:
- SharePoint 2013
- WCF 服务
- Windows 服务
- 各种测试,Python,和 Powershell 相关项目
我注意到这些项目包含大量 models/classes,这些内容在所有项目中都重复出现。为了减少重复代码,我创建了一个新项目来存放共享代码。不幸的是,我现在在 运行 时收到此错误:
"Method not found: [Name of method you tried to call]"
对于共享项目中的任何方法。值得注意的是,我有:
- 为所有使用它的项目添加了对新项目的引用
- 这个错误只发生在运行时
如果我将共享项目作为 'Additional Assembly' 添加到 'Package.Package' 配置文件中,我就能使 SharePoint 解决方案正常工作。但是,这会将共享项目添加到全局程序集缓存 (GAC),并且每次更新共享项目时仍然会遇到问题。
问题
如何部署引用共享项目中代码的单个项目,而不会在运行时崩溃?
相关:
- WCF Method not found after signing an assembly
- 我的共享程序集已签名(需要使用 SharePoint)
- Fault Exception - Method not found
- 正在尝试部署 GAC 安装;更喜欢部署在 BIN 文件夹中
- Drag and drop a DLL to the GAC ("assembly") in windows server 2008 .net 4.0
尝试的方法
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**