我正在尝试在 Visual Basic 中(在 Windows 7 上的 Visual Studio 2012 Professional 中)编写一个 Outlook 加载项,该加载项将与我们在工作中使用的 Web 服务交互。不幸的是,这个特定的 Web 服务并没有真正与时俱进,因此需要 Web 参考来实现 Microsoft.Web.Services2.WebServicesClientProtocol 来做某些事情。当我将生成的 Reference.vb 更改为继承此类而不是默认的和 Rebuild All 时,构建失败并显示以下消息:
------ 重建全部开始:项目:OutlookAddIn1,配置:调试任何 CPU ------ OutlookAddIn1 -> \\nas01\my-home$\chq-andrewt\Visual Studio 2012\Projects\OutlookAddIn1\OutlookAddIn1\bin\Debug\OutlookAddIn1.dll C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:“FindRibbons”任务意外失败。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: System.IO.FileNotFoundException: 无法加载文件或程序集 'OutlookAddIn1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。该系统找不到指定的文件。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:文件名:'OutlookAddIn1,版本 = 1.0.0.0 , 文化=中性, PublicKeyToken=null' C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:在 System.Reflection.RuntimeAssembly.nLoad(AssemblyName 文件名, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: 在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef , 证据 assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: 在 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString , 证据 assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean for Introspection) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: 在 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString , 证据组装安全, StackCrawlMark& stackMark, Boolean for Introspection) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: 在 System.Reflection.Assembly.Load(String assemblyString ) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:在 System.UnitySerializationHolder.GetRealObject(StreamingContext 上下文) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:在 Microsoft.Build.Framework.ITask.Execute( ) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft。 Build.BackEnd.ITaskExecutionHost.Execute() C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:在 Microsoft.Build.BackEnd.TaskBuilder.d__20。移动下一个() C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: === 预绑定状态信息 === C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: LOG: DisplayName = OutlookAddIn1, Version=1.0.0.0 , 文化=中性, PublicKeyToken=null C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:(完全指定) C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: LOG: Appbase = file:///C: /程序文件 (x86)/Microsoft Visual Studio 11.0/Common7/IDE/ C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): 错误 MSB4018: LOG: Initial PrivatePath = NULL C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:调用程序集:(未知)。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:=== C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:LOG:此绑定在默认加载上下文中启动。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:LOG:使用应用程序配置文件:C:\Users \chq-andrewt\AppData\Local\Microsoft\VisualStudio\11.0\devenv.exe.config C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018:LOG:使用主机配置文件: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: LOG: Using machine configuration file from C:\Windows \Microsoft.NET\Framework\v4.0.30319\config\machine.config。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: LOG: Policy not being applied to reference at this time (私有、自定义、部分或基于位置的程序集绑定)。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: LOG: The same bind was seen before and was hr = 0x80070002 失败。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9):错误 MSB4018: ==========全部重建:0成功,1失败,0跳过==========
我发现由于对 Reference.vb 的特别更改,不会发生崩溃。如果我创建一个新的 Outlook 2013 加载项项目、创建一个新类并让它继承 Microsoft.Web.Services2.WebServicesClientProtocol,我可以始终如一地重现这一点:
公共课 Class1 继承 Microsoft.Web.Services2.WebServicesClientProtocol 结束类
进行更改后,我将 Microsoft.Web.Services2.dll 添加到项目引用中,并在一些提示后添加 System.Web.Services.dll。我重建所有并迅速得到上述错误。
我发现如果我使用 Microsoft.Web。Services3 .WebServicesClientProtocol 相反,它工作正常。
这是我的第一个 Visual Basic 项目(以及任何使用 Microsoft 工具的项目),所以我可能遗漏了一些非常明显的东西。选择使用这个 Web 服务(以及扩展的 WSE2)不是我的选择。我正在尝试与其他人已经购买的东西进行交互。
我没有运气重新安装了 Visual Studio。
关于为什么会发生这种情况或如何解决这个问题的任何提示?提前致谢!