2014-10-01 1 views
1

우리가 사용하는 웹 서비스와 인터페이스 할 Visual Basic (Windows 7의 Visual Studio 2012 Professional)에 Outlook 추가 기능을 작성하려고합니다. 직장에서. 불행하게도이 특정 웹 서비스는 실제로 시대에 머 무르지 않으며 웹 참조가 특정 작업을 수행하기 위해 Microsoft.Web.Services2.WebServicesClientProtocol을 구현해야합니다. 나는 충돌 때문에로 변경 발생하지 않는 것으로 나타났습니다"Inherits Microsoft.Web.Services2.WebServicesClientProtocol"이 빌드를 종료합니다

------ Rebuild All started: Project: OutlookAddIn1, Configuration: Debug Any 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): error MSB4018: The "FindRibbons" task failed unexpectedly. 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'OutlookAddIn1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: File name: '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): error MSB4018: at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, 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): error MSB4018: at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, 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): error MSB4018: at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence 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): error MSB4018: at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: at System.Reflection.Assembly.Load(String assemblyString) 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: at System.UnitySerializationHolder.GetRealObject(StreamingContext context) 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: at Microsoft.Build.Framework.ITask.Execute() 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: at 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): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext() 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: === Pre-bind state information === 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: LOG: DisplayName = 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): error MSB4018: (Fully-specified) 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: LOG: Appbase = file:///C:/Program Files (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): error MSB4018: LOG: Initial PrivatePath = NULL 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: Calling assembly : (Unknown). 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: === 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: LOG: This bind starts in default load context. 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: LOG: Using application configuration file: 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): error MSB4018: LOG: Using host configuration file: 
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 (private, custom, partial, or location-based assembly bind). 
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 failed with hr = 0x80070002. 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(176,9): error MSB4018: 
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

: 내가 대신 기본의이 클래스를 상속하고 모두 다시 작성 생성 Reference.vb을 변경하면 빌드는 메시지와 함께 실패 참조 .vb 구체적으로. 나는 일관되게 내가 새 Outlook 2013 추가 기능 프로젝트를 만들 경우,이 재현 새로운 클래스를 생성하고 Microsoft.Web.Services2.WebServicesClientProtocol 상속 할 수 있습니다 : 그 변경되면

Public Class Class1 
    Inherits Microsoft.Web.Services2.WebServicesClientProtocol 
End Class

, 나는 마이크로 소프트를 추가를 .Web.Services2.dll 프로젝트 참조 및 일부 메시지, System.Web.Services.dll 후. 나는 모든 것을 재건하고 즉시 위의 오류를 얻는다.

내가 찾은 내가 Microsoft.Web를 사용하는 경우 그. Services3 .WebServicesClientProtocol 대신 잘 작동합니다.

이것은 내 첫 번째 Visual Basic 프로젝트 (및 그 문제에 대해 Microsoft 도구를 사용하는 모든 프로젝트)입니다. 그래서 뭔가 분명히 분명한 것을 놓칠 수 있습니다. 이 웹 서비스 (그리고 확장에 의한 WSE2)를 사용하는 선택은 나의 선택이 아니 었습니다. 다른 사람들이 이미 구입 한 것과 인터페이스하려고합니다.

Visual Studio를 다시 설치했습니다.

왜 이런 일이 발생했는지 또는 조금 더 문제를 해결하는 방법에 대한 힌트가 있습니까? 미리 감사드립니다!

답변

1

WSE 2는 단순히 너무 오래되었습니다. 그것은 .NET 프레임 워크를 버전 2까지만 지원합니다. 왜 이것이 유조선 이었는지 생각합니다. Outlook 2013 추가 기능을 작성한 이후로 4.5 (4로 낮게 갈 수 있음)를 사용하고 있습니다. SOAP 첨부 파일을 AT 모두 수행하는 기본 제공 기능이 없기 때문에 무료 SOAP 메시지를 손쉽게 게시 할 수있었습니다. 무료 솔루션이었고 매우 간단했습니다.

그것이 얼마나 탄력과 미래 경쟁력에 노 코멘트 ...

Public Shared Sub createAttachment(uploadPath As String, fileName As String, ticketHandle As String, description As String) 
    Dim fInfo As New FileInfo(uploadPath) 
    Dim numBytes As Long = fInfo.Length 
    Dim fStream As New FileStream(uploadPath, FileMode.Open, FileAccess.Read) 
    Dim br As New BinaryReader(fStream) 
    Dim data As Byte() = br.ReadBytes(CInt(numBytes)) 
    br.Close() 
    fStream.Close() 

    Dim boundary As String = "Part_3_4083017.1413597427118" 

    ' Set the 'Method' property of the 'Webrequest' to 'POST'. 
    Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create("http://soapserver:8080/axis/services/USD_R11_WebService"), HttpWebRequest) 
    myHttpWebRequest.Method = "POST" 
    myHttpWebRequest.UserAgent = "Jakarta Commons-HttpClient/3.1" 
    myHttpWebRequest.Host = "soapserver:8080" 
    myHttpWebRequest.ContentType = "multipart/related; type=""text/xml""; start=""<[email protected]>""; boundary=""----=_" & boundary & """" 
    Dim myWebHeaderCollection As WebHeaderCollection = myHttpWebRequest.Headers 
    myWebHeaderCollection.Add("MIME-Version: 1.0") 
    myWebHeaderCollection.Add("Accept-Encoding: gzip,deflate") 
    myWebHeaderCollection.Add("SOAPAction:""""") 
    'myWebHeaderCollection.Add("Expect:100-continue") 

    Dim inputData As String = Console.ReadLine() 
    Dim postData As New StringBuilder() 
    postData.Append("------=_" & boundary & vbCrLf) 
    postData.Append("Content-Type: text/xml; charset=UTF-8" & vbCrLf) 
    postData.Append("Content-Transfer-Encoding: 8bit" & vbCrLf) 
    postData.Append("Content-ID: <[email protected]>" & vbCrLf) 
    postData.Append("" & vbCrLf) 
    postData.Append("<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:ser=""http://www.vendorurl.com/TheirProduct"">") 
    postData.Append("<soapenv:Header/>") 
    postData.Append("<soapenv:Body>") 
    postData.Append("<ser:createAttachment>") 
    postData.Append("<sid>" & sid & "</sid>") 
    postData.Append("<repositoryHandle>" & getRepositoryHandle() & "</repositoryHandle>") 
    postData.Append("<objectHandle>" & ticketHandle & "</objectHandle>") 
    postData.Append("<description>" & description & "</description>") 
    postData.Append("<fileName>" & uploadPath & "</fileName>") 
    postData.Append("</ser:createAttachment>") 
    postData.Append("</soapenv:Body>") 
    postData.Append("</soapenv:Envelope>" & vbCrLf) 
    postData.Append("------=_" & boundary & vbCrLf) 
    postData.Append("Content-Type: image/x-png; name=" & fileName & vbCrLf) 
    postData.Append("Content-Transfer-Encoding: binary" & vbCrLf) 
    postData.Append("Content-ID: <" & fileName & ">" & vbCrLf) 
    postData.Append("Content-Disposition: attachment; name=""" & fileName & """; filename=""" & fileName & """" & vbCrLf) 
    postData.Append("" & vbCrLf) 
    Dim encoding As New UTF8Encoding() 
    Dim header As Byte() = encoding.GetBytes(postData.ToString) 
    Dim tail As Byte() = encoding.GetBytes(vbCrLf & "------=_" & boundary & "--") 
    myHttpWebRequest.ContentLength = header.Length + data.Length + tail.Length 
    Dim newStream As Stream = myHttpWebRequest.GetRequestStream() 
    newStream.Write(header, 0, header.Length) 
    newStream.Write(data, 0, data.Length) 
    newStream.Write(tail, 0, tail.Length) 
    newStream.Close() 
    Try 
     Dim response = myHttpWebRequest.GetResponse() 
     Dim s As Stream = response.GetResponseStream() 
     Dim sr As New StreamReader(s) 
     Dim Content As String = sr.ReadToEnd() 
     'Could parse Content to get the handler for our new attachment 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 
관련 문제