2017-11-02 16 views
0

저는 C#으로 Excel Addin에서 작업하고 C# Addin을 게시 할 때 문제가 있습니다.UDF로 C# Excel Addin을 게시하십시오.

나는 설명 할 것이다 : 내 추가 기능에서 UDF를 사용할 수 있도록 http://csharpramblings.blogspot.fr/2011/09/communicating-between-vsto-and-udfs-in.html

:

은이 코드를 사용했다. 그리고 그것은 매우 잘 작동합니다! ... Visual Studio 2013에서.

Visual Studio로 Addin을 실행하면 Excel의 "COM Addins"에 Addin이 표시됩니다. 그리고 내 UDF는 Excel의 "Excel Addins"에 있습니다.

다음 : 나는 Visual Studio의 프로젝트에서 rightclick으로 Addin을 게시합니다. VS에서 생성 한 setup.exe로 addin을 설치합니다. Excel을 시작합니다. => 제 추가 기능이 제대로 작동하지만 제 UDF가 작동하지 않습니다. 셀의 값은 "#NAME?"입니다.

COM 추가 기능을 체크인했는데 내 추가 기능이 있습니다. Excel Addins에서 체크했는데 UDF가 보이지 않습니다.

그래서 RegAsm을 사용하여 게시 된 DLL의 어셈블리를 등록했습니다. 이제 "Excel Addins"에서 UDF를 볼 수 있지만 여전히 작동하지 않습니다.

아무도 나에게 도움이된다면 위대한 것이 될 것입니다.

내가 사용 : 윈도우 8.1 프로, 비주얼 스튜디오 프로 2013, 엑셀 2016 마이크로 소프트 오피스 365

이 시간에 미리 감사드립니다.

+0

Office에 XLAM을 등록 했습니까? –

+0

링크가 작동하지 않는 것 같습니다. ''죄송합니다,이 블로그에서 찾고 있던 페이지가 없습니다. '' –

+0

링크를 수정했습니다. 죄송합니다. 그리고 XLAM 파일이 없습니다. 내 Addin은 dll입니다. – Nato

답변

0

해결책을 찾았습니다.

내 실수는 매개 변수없이 Regasm을 사용하는 것이 었습니다. 이제 Regasm을/codebase 매개 변수와 함께 사용하고 강력한 이름으로 어셈블리를 서명했습니다. Regasm 설명서에 다음과 같이 나와 있기 때문에 :

레지스트리에 코드베이스 항목을 만듭니다. 코드베이스 항목은 어셈블리 캐시에 설치되지 않은 어셈블리의 파일 경로를 으로 지정합니다. 이후에 전역 어셈블리 캐시에 등록 할 어셈블리를 설치하는 경우이 옵션을 지정하면 안됩니다. 으로 지정하는 assemblyFile 인수는/codebase 옵션이 강력한 이름의 어셈블리 여야합니다.

자료 :

https://msdn.microsoft.com/fr-fr/library/tzat5yw6(v=vs.110).aspx 지금 내가 Excel에서 내 UDF를 참조하고 작동합니다.