Sharp Develop 을 사용하여 개발을 하다가 빌드를 자동화 할 필요가 있어서 찾아보니 Sharp Develop 툴 자체에서 Command Line 에서 빌드 할 수 있는 방법은 찾지 못했다. 

그래서 csc.exe 를 사용하여 빌드하는 방법을 찾아보니 아래 주소에서 방법을 알 수 있었다.


빌드를 위해서는 당연히 argument 들을 작성해야 할 텐데 이런 argument 들은 rsp 파일로 만들어서 빌드하는게 편리한 것 같다.

Word, Visio 파일을 자동화 하기 위해서 Microsoft.Office.Interop.Word, Microsoft.Office.Interop.Visio 를 사용하는데 각각 Microsoft.Office.Interop.Visio.dll, Microsoft.Office.Interop.Word.dll 파일의 형태로 존재하며 rsp 파일에 적는 경우 다음과 같이 Fullpath 를 적어줘야 정상적으로 인식된다.

C# 에서는 기본적으로 참조되는 reference 들이 있는데 이런 reference 들은 csc.exe 파일이 들어 있는 폴더에 같이 들어 있는 csc.rsp 파일을 열어보면 확인 할 수 있다. csc.rsp 파일은 항상 컴파일러에 의해 로드되므로, 원하지 않으면 /noconfig 옵션을 설정하면 된다.

결과적으로 test.rsp 파일은 다음과 같이 작성한다. 주석은 # 으로 시작하고 /recurse 는 하위의 cs 파일을 모두 빌드 하라는 뜻이며 /out 은 말그대로 output Console 프로그램의 파일 이름을 설정한다.

# test.rsp
# C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe  @test.rsp

/out:My.exe

/recurse:*.cs 

/r:C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Visio\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Visio.dll
/r:C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Word\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Word.dll

위와 같이 rsp 파일을 만들었으면 이제 Command 창에서 다음과 같이 빌드 할 수 있다.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe  @test.rsp



현재 visio 2013 버전을 사용하고 있으며 C# 을 사용하여 Visio 파일 자동화를 하곤 한다


이번에 Windows 를 다시 깔면서 visio 2013 을 다시 설치 했는데 


C# 을 사용하여 Visio 파일을 저장할 때


vsd 확장자로 저장하면 다음과 같은 에러가 발생했다.


System.Runtime.InteropServices.COMException (0x86DB09C6):


잘 되던게 안되서 무척 당황하다가 


아래 링크를 통해 그 이유를 알 수 있었다. 


http://stackoverflow.com/questions/15659082/save-visio-2013-diagram-in-the-vsd-format


Visio API 의 버그라고 한다. vsdx 확장자로 저장하게 코드를 바꾸었더니 저장 문제가 해결 됐다.



Microsoft.Office.Interop.Word 를 사용하여 만든 프로그램을 배포시 office 버전이 안 맞아서 에러가 나는 경우가 종종 있다. 

 

이런 경우에는 Microsoft.Office.Interop.Word.dll 파일을 실행 파일과 같이 전달 해 주면 해결이 되곤 한다.

 

나의 경우 위 파일은 아래 주소에 있었다.

 

C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Word\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Word.dll

 

Excel 프로그램을 만드는 경우 Microsoft.Office.Interop.Excel 을 사용하겠고 해당 파일은 아래 주소에 있다.

 

C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll

 

dll 파일은 배포한 실행 프로그램과 같은 폴더에 위치 시키거나 path 로 설정된 폴더에 위치 시키면 된다.

C# 에서 clipboard 사용할 때는 System.Windows.Forms 사용한다.

 

그런데 그냥 하다 보니 단순하게 Clipboard 를 사용하면 Thread 관련 에러가 난다.

 

해결 방법을 찾아보니 아래 주소에 그 해결 방법이 있었다.

 

http://stackoverflow.com/questions/3546016/how-to-copy-data-to-clipboard-in-c-sharp

 

해결 방법은 간단하다. [STAThreadAttribute] 를 main 위에 넣어 주면 된다.

 

샘플 코드는 아래와 같다.

 

using System;
using System.Windows.Forms;


namespace Test
{
    class Program
    {
        [STAThreadAttribute]
        public static void Main(string[] args)
        {            
            string a = Clipboard.GetText();


            System.Console.WriteLine(a);
            
            Clipboard.SetText("Hello, clipboard");        
            
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}

 

위 코드를 실행해보면 Clipboard 의 text 값을 a 라는 변수에 넣게 되고 "Hello, clipboard" 라는 text 값을 Clipboard 에 넣게 된다.

 

위 코드 실행 후에 아무 에디터에 CTRL+V 를 통해 붙여 넣기를 해보면 Hello, clipboard 라는 글자가 들어감을 확인 할 수 있다.


어쩌다 보니 C#을 약간 다루어야 할 일이 생겼다.

 

C# 은 아주 오래 전에 그냥 책 한번 보고 간단한 폼 좀 만들어서 가지고 놀아본 경험이 있었지만 그 이후로는 거의 사용하지 않은 언어이다.

 

그 당시에는 Visual studio Express 을 다운로드 받아서 사용했는데

 

오늘 회사에서 확인을 해보니 우리 회사에서 Express 버전을 다운로드 받아서 사용하면 안 될 것 같았다.

 

일단 뭐 하도 오래 전에 약간 본 언어라 어케 했었는지 가물 가물 하고 해서 자료를 좀 찾아보니 역시나 요즘 인터넷 세상에는 모든 자료가 널려 있었다.

 

아래 주소에 가보니 일단 쉽게 시작 할 수 있었다.

 

http://www.csharpstudy.com/

 

http://www.hoons.net/Lecture/View/537

 

Visual Studio 를 설치하지 못하면 C#을 할 수 없는 거 아닌가 생각했는데~ Console 에서 작업은 할 수 있었다.

 

C# 컴파일러는 csc.exe 인데~ 찾아보니 아래 path 와 같이 두 개의 csc.exe 파일이 있는 것을 확인 할 수 있었다.

 

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe

 

하나는 32비트용 이고 하나는 64 비트 용인 듯 하다.

 

아무튼 위 path 에 C# 컴파일러가 있으니 간단하게 아래 주소에 있는

 

정규표현 식 사용 예제를 하나 돌려 봤다.

 

https://msdn.microsoft.com/ko-kr/library/ms228595.aspx

 

Source 의 파일 명은 test.cs 라고 했고~ CMD 창에서 다음과 같이 컴파일 했다.

 

test.cs


C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe test.cs

 

 

다음으로 만들어진 test.exe 파일을 실행 해 봤다.

 

위 예제에서 설명한 데로 잘 된다. ㅎㅎㅎ



+ Recent posts