2015-01-30 1 views
1

일부 TFS 어셈블리에 대한 참조를 포함하는 Outlook 추가 기능을위한 작은 설치 프로그램을 만들려고합니다.VSTO OneClick Deplyoment - 누락 된 Microsoft.WITDataStore.dll

installshield를 통해 수동 설정을 만들려고했지만 Outlook에서 계속 Addin을 무시했기 때문에이 작업은 실패했습니다.

올바른 방법은 'Publish'및 ClickOnce deplyoment를 통해 이루어집니다. 이 작동하지만 Microsoft.WITDataStore.dll '에 대한 간접 참조가있는 것 같습니다. AddIn을 게시하면이 어셈블리가 배포되지 않고 vsto 파일에서 AddIn을 제대로 설치할 수 없습니다.

그래서 가장 쉬운 방법은 어셈블리를 추가하는 것이지만 "C : \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE"를 통해 어셈블리를 추가하려고하면됩니다. \ ReferenceAssemblies는 \ v2.0이 \의 Microsoft.WITDataStore.dll는 "나는 오류를 얻을 : 내 두 번째 방법은 자신의 출판 프로파일을 작성하고 수동으로 어셈블리를 추가하려고했다, 그러나 프로파일처럼 보인다

--------------------------- 
Microsoft Visual Studio 
--------------------------- 
A reference to 'C:\Program Files (x86)\Microsoft Visual Studio 
12.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.WITDataStore.dll' 
could not be added. Please make sure that the file is accessible, and 
that it is a valid assembly or COM component. 
--------------------------- 
OK 
--------------------------- 

수 웹 프로젝트에만 사용되며 추가 기능에는 사용할 수 없습니다.

나는이 문제에 관해서는별로 도움이되지 않는 msdn I get the following suggestion을 통해 전혀 알지 못했다.

내가 생각하지 못했던이 문제에 대한 해결책이 있습니까?

편집 : jessehouwing 님의 제안을 시도했습니다. 매우 흥미 롭습니다 : Assembly를 Main-Project (Outlook 인터페이스)에 Content로 추가하고 '복사하지 마십시오'라고 설정해도 원하는 Microsoft.WITDataStore.dll.deploy - File, 을 얻을 수 있습니다. 압축 풀기에서 오류를 다음

System.IO.IOException: The file 'C:\Users\matthias.mueller\AppData\Local
\Temp\Deployment\JVX5J0LT.O0R\8P6ZQORW.DQJ\Microsoft.WITDataStore.dll' already exists.

내가 (TFS에 DATAACCESS를) 직접해야 할 수도 있습니다 프로젝트에 어셈블리를 추가하는 경우, 파일이 생성되고 난 원래 오류가 발생되지 않습니다. "Copy if newer"및 "Copy always"도 시도했지만 'already exists'오류도 발생합니다.

+2

WitDataStore는 실제로 관리되지 않는 C++ dll이므로 프로젝트 참조로 추가 할 수 없습니다. 콘텐츠로 추가하고 빌드 조치를 최신으로 복사로 설정하십시오. 공식적으로 TFS 개체 모델 어셈블리를 재배포 할 수는 없지만 공식적으로 사용자에게 여기에서 찾을 수있는 설치 프로그램을 가리켜 야합니다. https://visualstudiogallery.msdn.microsoft.com/3278bfa7-64a7- 4a75-b0da-ec4ccb8d21b6 – jessehouwing

+0

아이디어를 주셔서 감사합니다. 제 질문을 편집했습니다. –

답변

1

.Net 핵심 프로젝트에서이 문제를 겪게 될 사람들에게. 내가해야 할 일은 그 dll을 Project에 추가하는 것이었다. project.json에 추가하십시오.

"buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true, 
    "copyToOutput": { "includeFiles": [ "Microsoft.WITDataStore32.dll", "Microsoft.WITDataStore64.dll" ] } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "appsettings.json", 
     "web.config" 
    ], 
    "includeFiles": [ "Microsoft.WITDataStore32.dll", "Microsoft.WITDataStore64.dll" ] 
    }, 

그렇지 않으면 Azure에 게시 할 때 Visual Studio에서 출력 폴더에 복사하지 않습니다.

+0

감사합니다. 사실, 나에게 유용 할 수도 있습니다. –