.Net으로 솔리드웍스 앱 만들기 Chapter-1
본 게시글은 비주얼스튜디오 2022와 .NetFrameWork를 통해서 솔리드웍스 앱을 만드는 기본적인 과정을 서술한다.
1. 프로젝트 생성-1 참조 추가
2. 프로젝트 생성-2 프로젝트 작성
3. 레지스트리 등록
4. 강력한 키 (서명) 생성
5. 등록
6. 확인
부록
순서대로 진행한다.
또한 여기에 내가 만든 프로젝트 파일도 업로드 해놓았으나
내가 만든것을 다운로드 하기 보단 이 게시글을 하나하나 쫒아가는 것을 권장한다.
1. 프로젝트 생성-1 참조추가
더보기 참조

비주얼 스튜디어에서 새 프로젝트를 만들자

검색창에서 클래스를 입력하고 나온 메뉴들 가운데 클래스 라이브러리 (.NET FrameWork)를 선택한다.
주의: 반드시 .NetFramework를 선택한다. 그냥 클래스 라이브러리로 할 경우 프로젝트 속성 목록이 다르게 나타난다.

적당히 원하는 곳에 프로젝트 생성

기본적으로 Class1 파일이 생성되어 있다.
그건 그냥 놔두고
오른쪽 메뉴에서 참조를 우클하고 참조 추가 선택

참조 관리자의 어셈블리 탭에서 위의 2개를 추가

이번엔 참조관리자의 찾아보기 탭에서 찾아보기 버튼 선택

위의 경로에서 파일 3개를 찾아서 추가

완료
2. 프로젝트 생성-2




생성된 xaml에 본인이 원하는 배치를 하도록 하자
비하인드 코드는 건드릴 필요 없다.
적당히 추가한 코드 내용은 아래와 같다.
<Grid Background="Green">
<TextBlock Text="Example 솔리드웍스에 사용할 예제3" FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<Button Content="버튼!!" VerticalAlignment="Bottom" HorizontalAlignment="Center" Width="100" Height="30"/>
</Grid>

다시 Class1.cs 파일로 돌아와서 코드를 입력한다.
public class MyAddIn : SwAddin
{
private ISldWorks _swApp;
private int _addinID;
private ITaskpaneView taskPaneView;
public bool ConnectToSW(object ThisSW, int Cookie)
{
_swApp = (ISldWorks)ThisSW;
_addinID = Cookie;
// Task Pane 추가
taskPaneView = (ITaskpaneView)_swApp.CreateTaskpaneView2("", "WPF로 만든 또다른 창!");
// WPF 유저 컨트롤을 ElementHost에 할당
var elementHost = new ElementHost
{
Child = new NewWindow(), // WPF 유저 컨트롤 설정
Dock = DockStyle.Fill // 크기를 Task Pane에 맞게 설정
};
// DisplayWindowFromHandle 메서드에 IntPtr로 바로 전달
taskPaneView.DisplayWindowFromHandle(elementHost.Handle.ToInt32());
return true;
}
public bool DisconnectFromSW()
{
if (taskPaneView != null)
{
taskPaneView.DeleteView();
}
return true;
}
}
그런데 이거대로 입력할 경우 사진 처럼 오타 판정이 있을 수 있다.
오타 판정이 나타난 곳을 클릭한 다음 Alt + Enter를 입력하자


위 사진대로 Alt+Enter를 통해 첫번째 메뉴를 클릭하면 코드의 최상단에 using이 자동으로 생성되는 것을 확인할 수 있다.
이제 GUID를 만들어보자
GUID 코드는 자신이 무작위로 생성해도 무방하지만
각 컴퓨터 안에는 이미 매우 다양한 GUID가 있고 이것과 중복되서는 안된다.
따라서 GUID 생성 툴을 사용해보자


아래 "결과"에 GUID가 생성되었으면 우측 상단의 복사를 클릭

그 다음 class MyAddIn위에 붙여넣기 하고
그 아래
[ComVisible(true)를 입력한다.]

여기까지 마쳤으면 빌드 진행
3. 레지스트리 등록하기
4. 강력한 키 (서명) 생성





MyAddinKey는 생성할 서명 파일의 이름으로 사용자가 원하는 이름 지정
단, 확장자 .snk는 반드시 붙여야함

이제 프롬프트에서 벗어나 비주얼스튜디오로 복귀




5. 등록

아까처럼 프롬프트를 실행

이번엔 cd를 할 필요 없다.
이번 프롬프트에서 실행할 명령어는 아래와 같으나 주의사항이 몇가지 있음
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "C:\Users\손민성\Desktop\업무_개발\2_진행\5_퀵메니저\프로그램\테스트프로그램\TestProgram3\AddIn\bin\Debug\AddIn.dll" /tlb /codebase
이 명령어는
- RegAsm 프로그램의 위치
- 내가 만든 프로그램의 위치
- /tlb
- /codebase
이 4개로 구성되어 있다.
앞부분이 RegAsm 프로그램의 위치
그 다음 초록색 부분이 내가 만든 dll 파일의 위치, 나머지는 옵션이다.
따라서 RegAsm 프로그램이 저 위치에 있는지 확인해야 한다.
(사용자마다 RegAsm 프로그램의 위치가 조금씩 다를 수 있기 때문)


이렇게 RegAsm.exe 파일의 위치를 찾을 수 있다.
이제 내 dll 파일의 위치를 찾아보자



이제 RegAsm.exe 파일의 위치는
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe
내가 만든 dll 파일의 위치는
"C:\Users\손민성\Desktop\업무_개발\2_진행\5_퀵메니저\프로그램\테스트프로그램\TestProgram3\AddIn\bin\Debug\AddIn.dll"
이렇게 찾아냈다.
이제
/tlb 과
/codebase 를 붙여서 (띄어쓰기로 나누어주는 것 잊지말것)
아까 그 명령어를 완성하자
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "C:\Users\손민성\Desktop\업무_개발\2_진행\5_퀵메니저\프로그램\테스트프로그램\TestProgram3\AddIn\bin\Debug\AddIn.dll" /tlb /codebase


6. 확인
이제 모든 준비가 완성되었다.
솔리드웍스를 실행해서 제대로 추가되었는지 확인해보자

솔리드웍스를 실행하고 상단의 톱니바퀴 -> 애드인 -> 가장 아래로 스크롤
아까 레지스트리 등록할때 있었던 파일이 있다.
이것의 왼쪽의 체크박스만 체크하고 확인

이렇게 아까 만든 WPF 창이 나타나는 것을 볼 수 있다.
그런데 뭔가 좀 이상하게 나타났는데

창의 크기를 좌우로 조절해주면 알아서 맞춰진다.
부록
이 글을 작성하면서 참고했던 영상이다.
아래 영상은 10년전의 것이며 영어로 작성되어 있기 때문에 최신 버전과는 약간의 차이가 있다.
Create and register SolidWoks C# and VB.NET AddIns in 3 Steps (youtube.com)