Excel VSTO:“;Can';“找不到项目或库”;属性Get CallVSTOAssembly发生错误

Excel VSTO:“;Can';“找不到项目或库”;属性Get CallVSTOAssembly发生错误,excel,vba,clickonce,vsto,customization,Excel,Vba,Clickonce,Vsto,Customization,使用VisualStudio2008 使用VSTO自定义Excel 2007工作簿 “找不到项目或库”错误最近开始出现在Excel VBA编辑器中的以下代码行中: Property Get CallVSTOAssembly() As ShipdebitClaimProcessor.ThisWorkbook 这仅在使用已发布版本的客户端上发生。在我的开发PC上,它运行良好。在VBE中的客户机上,在“工具”、“引用”下,显示 MISSING: ShipDebitClaimProcessor

使用VisualStudio2008 使用VSTO自定义Excel 2007工作簿

“找不到项目或库”错误最近开始出现在Excel VBA编辑器中的以下代码行中:

   Property Get CallVSTOAssembly() As ShipdebitClaimProcessor.ThisWorkbook
这仅在使用已发布版本的客户端上发生。在我的开发PC上,它运行良好。在VBE中的客户机上,在“工具”、“引用”下,显示

MISSING: ShipDebitClaimProcessor
Location: C:\MyCompany\OfficeApplication\Excel\ShipDebitClaimProcesor\bi
虽然位置看起来被截断了,但它可能指向bin文件夹中的程序集,因为它存在于我的开发PC上。当然,客户端上不存在此路径。它应该说什么来让它在客户机上工作,以及如何纠正它?它应该以某种方式引用ClickOnce缓存吗


这种定制已经使用了好几年。最新的更改可能会破坏它,包括删除一些图纸和更改VBA代码。我尝试使用现有的Excel文件从头开始创建一个新项目,但没有成功。

我相信您需要这样做

  • 使库在客户端桌面上可用

  • 从项目中删除引用
首先,您需要知道为什么以及何时在项目中使用每个引用。我认为现在最好的做法是删除引用并重新测试您的应用程序,以确保不再使用此库(否则,在以前的版本中没有它的客户端也会有问题)


Rgds

这是一个使用ClickOnce的VSTO(Visual Studio Tools for office)应用程序,如使用VSTO扩展VBA代码()中所述。删除引用会导致消息“Compile error:User defined type not defined”,光标位于“Property Get CallVSTOAssembly()”上。当我在Visual Studio中设置EnableVbaCallers属性时,调用VSToAssembly属性是由VSTO生成的。CallVSTOAssembly的目的是将VBA连接到我的VSTO(.NET)程序集ShipDebitClaimProcessor.dll,从而可以从VBA调用其.NET代码。我编写的其他VBA代码已经调用该语句好几年了。在Visual Studio中将EnableVbaCallers设置为true时,Visual Studio会自动将另一个属性设置为true:ReferenceAssemblyFromVbaProject()。创建在“工具”“参照”下可见的参照。在我的故障排除过程中,有一次我想我注意到其中有一个GUID,它可能是VSTO()自动创建的_AssemblyName属性的值。我想知道GUID是否属于那里而不是我的bin文件夹的路径,但我不知道如何让VSTO重新创建GUID。表4行中的“故障排除”部分与问题有点接近。重命名自定义程序集后,调用自定义程序集的VBA代码将停止工作。但是,它建议的解决方案在我的情况下不起作用。在切换ReferenceAssemblyFromVBAPProject的值时,我收到一条弹出错误消息:“属性值无效”HRESULT异常:0x800A802D。我在搜索引擎上没有找到这些搜索的结果:“属性值无效”ReferenceFromVbaAssembly“属性值无效”六周前,我对应用程序进行了更改,并在本地对其进行了测试。未发现任何错误,我发布了该应用程序。直到几天前,当发现错误时,该应用程序才投入使用。在对测试PC进行初始故障排除时,我在事件日志中发现了一条短暂的错误消息:Microsoft.VisualStudio.Tools.Applications.Runtime.ControlNotFoundException:此文档可能无法按预期运行,因为缺少以下控件:Sheet5。依赖此控件的数据将不会自动显示或更新,并且其他自定义功能将不可用。