(Microsoft PowerPoint - C#\260\355\261\3361.ppt)

Similar documents
Microsoft PowerPoint - hci2-lecture12 [호환 모드]

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345])

3ÆÄÆ®-14

Microsoft PowerPoint - CSharp-10-예외처리

PowerPoint Presentation

PowerPoint 프레젠테이션

초보자를 위한 C# 21일 완성

C++ Programming

Microsoft PowerPoint - 04-UDP Programming.ppt

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

12-file.key

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint 프레젠테이션

비긴쿡-자바 00앞부속

JVM 메모리구조

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

제 1장 C#의 개요

Microsoft PowerPoint - hci2-lecture2.ppt [호환 모드]

3ÆÄÆ®-11

1

(Microsoft PowerPoint - C#\260\355\261\3363\(WinForm\).ppt)

rmi_박준용_final.PDF

05-class.key

Microsoft PowerPoint - Java7.pptx

02 C h a p t e r Java

교육자료


C# Programming Guide - Types

BMP 파일 처리

자바 프로그래밍

Microsoft PowerPoint - hci2-lecture2.ppt [호환 모드]

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Interstage5 SOAP서비스 설정 가이드

untitled

ALTIBASE 사용자가이드 Templete

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

Design Issues

JAVA PROGRAMMING 실습 05. 객체의 활용

윈도우시스템프로그래밍

PowerPoint Presentation

4S 1차년도 평가 발표자료

슬라이드 1

Microsoft PowerPoint - CSharp-2-기초문법

No Slide Title

Chapter 1

C++ Programming

JAVA PROGRAMMING 실습 02. 표준 입출력

윈도우시스템프로그래밍

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

문서의 제목 나눔고딕B, 54pt

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

Semantic Consistency in Information Exchange

제8장 자바 GUI 프로그래밍 II

Microsoft PowerPoint - Lect04.pptx

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

어댑터뷰

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

歯9장.PDF

PowerPoint Presentation

Dialog Box 실행파일을 Web에 포함시키는 방법

PowerPoint Presentation

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

쉽게 풀어쓴 C 프로그래밊

01-OOPConcepts(2).PDF

PowerPoint Presentation

Microsoft PowerPoint - C++ 5 .pptx

chap10.PDF

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

MAX+plus II Getting Started - 무작정따라하기

The Self-Managing Database : Automatic Health Monitoring and Alerting

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

유니티 변수-함수.key

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

Microsoft PowerPoint - hci2-lecture7.ppt [호환 모드]

ch09

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JMF3_심빈구.PDF

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

슬라이드 1

Cluster management software

JAVA PROGRAMMING 실습 08.다형성

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

Microsoft PowerPoint - a10.ppt [호환 모드]

thesis

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

제11장 프로세스와 쓰레드

설계란 무엇인가?

2007_2_project4

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

강의10

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

PowerPoint 프레젠테이션

歯처리.PDF

Transcription:

- 1 - C# Programming 고급 이현정 hjyi@hotmail.com MCT/MCSD/MCAD/MCSD.NET

교재목차 - 2-1부 C# 언어 1장 C, C++ 그리고 C# 2장 Hello, C#! 3장변수와자료형 4장연산자 5장흐름제어 6장메쏘드 7장클래스 8장배열과컬렉션 9장속성과인덱서 10장델리게이트와이벤트 11장예외처리 12장특성 13장일반화프로그래밍 2부.NET 프레임워크활용 14 장비주얼 C# 익스프레스시작하기 15 장 C# 윈도우프로그래밍의기초 16 장메모장만들기 17 장파일관리자만들기 - Part 1 18 장파일관리자만들기 - Part 2 19 장 MyCanvas - GDI+ 20 장데이터베이스와 ADO.NET 21 장 ADO.NET 과함께하는 MyFriends 프로젝트 22 장쓰레드 (Thread) 23 장네트워크프로그래밍 24 장컴포넌트프로그래밍 25 장.NET 리모팅 26 장이책에서다루지못한것들

목차 Day1 Day2 Day3 Day4 Day5 파일다루기 Serialization Assembly 멀티쓰레드프로그래밍.NET 네트워크프로그래밍 -I.NET 네트워크프로그래밍 -II.NET 리모팅 Window Form 프로그램소개 UI 구현 / 대화상자 GDI+ 소개 배포 - 3 -

- 4 - 파일다루기 (17장-18장파일관리자만들기 ) 디렉토리다루기 파일다루기 FileSystemWatcher Reader/Writer로파일다루기 StreamReader/StreamWriter BinaryReader/BinaryWriter

파일및디렉토리다루기 - 5-1. 파일과디렉토리관련클래스 2. Directory와 DirectoryInfo 클래스 2.1 DirectoryInfo 사용예제 2.2 디렉토리관리예제 2.3 디렉토리탐색하기 (dir) 3. File과 FileInfo 클래스 3.1 FileInfo 사용예제 3.2 FileAttribute 3.3 파일관리예제 4. 파일시스템감시 4.1 FileSystemWatcher 예제

1. Sytem.IO 네임스페이스 - 6 -

2. 디렉토리와파일다루기 - 7 - Directory 와 DirectoryInfo 클래스 File 과 FileInfo 클래스

2.1 디렉토리다루기 - 8 - Directory - Static 메서드들만 디렉토리생성, 이동및삭제등메서드제공 DirectoryInfo- Instance 메서드들만 디렉토리생성, 이동및삭제등메서드제공 객체재사용시보안체크안함 DirectoryInfo dir dir = new new DirectoryInfo("."); foreach (FileInfo f in in dir.getfiles("*.cs")) String name = f.fullname;

2.1 DirectoryInfo 사용예제 - 9 - using using System.IO; System.IO;.. DirectoryInfo DirectoryInfo dirinfo dirinfo = = new new DirectoryInfo(@ c:\winnt\system ); DirectoryInfo(@ c:\winnt\system ); if if (dirinfo.exists) (dirinfo.exists) Console.WriteLine( Console.WriteLine( 디렉토리이름디렉토리이름 :0,dirInfo.Name); :0,dirInfo.Name); Console.WriteLine( Console.WriteLine( 생성일생성일 :0,dirInfo.CreationTime); :0,dirInfo.CreationTime); Console.WriteLine( Console.WriteLine( 루트루트,dirInfo.Root);,dirInfo.Root); Console.WriteLine( Console.WriteLine( 부모부모,dirInfo.Parent);,dirInfo.Parent); Console.WriteLine( Console.WriteLine( 디렉토리속성디렉토리속성 0,dirInfo.Attribute); 0,dirInfo.Attribute); else else Console.WriteLine( Console.WriteLine( 디렉토리가디렉토리가없습니다없습니다. );. );

2.2 디렉토리관리예제 - 10 - using using System.IO; System.IO;.. DircetoryInfo DircetoryInfodir= dir= new new DirectoryInfo( c:\\temp ); if if (!dir.exists) (!dir.exists) Console.WriteLine( 0 디렉토리를디렉토리를생성합니다생성합니다.,dir);.,dir); dir.create(); dir.create(); Console.WriteLine( 하위디렉토리를하위디렉토리를생성합니다생성합니다 ); ); dir.createsubdirectory(@ temp ); dir.createsubdirectory(@ nested\temp ); Console.WriteLine( 0 디렉토리디렉토리하위까지하위까지모두모두지웁니다지웁니다.,dir);.,dir); dir.delete(true);

2.3 디렉토리탐색하기 (dir) - 11 - using using System.IO; System.IO;.. Console.WriteLine( 디렉토리명을디렉토리명을입력하시오입력하시오 ); ); String String reqdir reqdir = Console.ReadLine(); DircetoryInfo DircetoryInfodir= dir= new new DirectoryInfo(reqDir); if if (dir.exists) (dir.exists) FileSystemInfo[] FileSystemInfo[] results results = dir.getfilesysteminfos(); foreach(filesysteminfo fsi fsi in in results) results) Console.WrietLine( 0\t1fsi.Attribute,fsi.FullName); Console.WriteLine( 모두모두 0 0 개의개의파일이파일이있습니다있습니다.,results.Length); else else //System.IO.DirectoryNotFoundException 으로도으로도처리가능처리가능 Console.WriteLine( 해당해당디렉토리가디렉토리가존재하기존재하기않습니다않습니다. );. );

2.3. 파일다루기 - 12 - File- Static Method 만 파일생성, 복사, 삭제, 이동, 열기에관련된메서드들제공 FileInfo - Instance Methods 만 파일생성, 복사, 삭제, 이동, 열기에관련된메서드들제공 객체를재사용시보안체크안함 FileStream astream = File.Create("foo.txt");

2.3.1 FileInfo 사용예제 - 13 - using using System.IO; System.IO;.. FileInfo FileInfofileInfo fileinfo = new new FileInfo( c:\\test.txt ); if if (fileinfo.exists) Console.WriteLine( 폴더이름폴더이름 :0,fileInfo.Directory); Console.WriteLine( 전체이름전체이름 :0,fileInfo.FullName); Console.WriteLine( 파일이름파일이름 :0,fileInfo.Name); Console.WriteLine( 확장자이름확장자이름 :0,fileInfo.Extension); Console.WriteLine( 생성일생성일 :0,fileInfo.CreationTime); Console.WriteLine( 크기크기 [ 바이트바이트 ]:0,fileInfo.Length); Console.WriteLine( 파일속성파일속성 0,fileInfo.Attribute); else else Console.WriteLine( 파일이파일이없습니다없습니다. );. );

2.3.2 파일관리예제 - 14 - using using System; System; using using System.IO; System.IO; class class MainClass MainClass public public static static void void Main() Main() //File //File Handling Handling FileInfo FileInfo sourcefile sourcefile = = new new FileInfo FileInfo ("c:\\test.txt"); ("c:\\test.txt"); if if (sourcefile.exists (sourcefile.exists ) ) FileInfo FileInfo copyfile copyfile = = sourcefile.copyto("c:\\temp\\copytest.txt",true); sourcefile.copyto("c:\\temp\\copytest.txt",true); copyfile.moveto(@"c:\move.text"); copyfile.moveto(@"c:\move.text"); if if (copyfile.exists (copyfile.exists ) ) copyfile.delete copyfile.delete (); (); else else Console.WriteLine Console.WriteLine (" (" 파일이파일이없습니다없습니다 "); ");

3. 파일시스템감시 FileSystemWatcher 파일시스템을감시 FilesystemWatcher 객체생성 - 15 - FileSystemWatcher watcher watcher = new new FileSystemWatcher(); 구성 watcher.path watcher.path = args[0]; args[0]; watcher.filter watcher.filter = "*.txt"; "*.txt"; watcher.notifyfilter = NotifyFilters.FileName; watcher.renamed watcher.renamed += += new new RenamedEventHandler(OnRenamed); 감시시작 watcher.enableraisingevents = true; true; 이벤트처리 public public static static void void OnRenamed(object OnRenamed(objects,RenamedEventArgs e) e) Console.WriteLine("File: 0 0 renamed renamed to to 1", 1", e.oldfullpath, e.oldfullpath, e.fullpath); e.fullpath);

3.1 FileSystemWatcher 예제 - 16 - class class Watcher Watcher public public static static void void Main() Main() string string name name = = "c:\\";//directory "c:\\";//directory 지정지정 FileSystemWatcher FileSystemWatcher w w = = new new FileSystemWatcher FileSystemWatcher (); (); w.path w.path = = name; name; w.notifyfilter w.notifyfilter = = NotifyFilters.LastAccess NotifyFilters.LastAccess NotifyFilters.LastWrite NotifyFilters.LastWrite NotifyFilters.FileName NotifyFilters.FileName NotifyFilters.DirectoryName NotifyFilters.DirectoryName ; ; w.filter w.filter ="*.txt"; ="*.txt"; // // txt txt file file 를 watch watch //Event //Event Handler Handler w.changed w.changed += += new new FileSystemEventHandler(OnChanged); FileSystemEventHandler(OnChanged); w.created w.created += += new new FileSystemEventHandler(OnChanged); FileSystemEventHandler(OnChanged); w.deleted w.deleted += += new new FileSystemEventHandler(OnChanged); FileSystemEventHandler(OnChanged); w.renamed w.renamed += += new new RenamedEventHandler(OnRenamed); RenamedEventHandler(OnRenamed); // // watch watch 시작시작 w.enableraisingevents w.enableraisingevents = = true; true; Console.WriteLine Console.WriteLine ("Preass ("Preass \'q\' \'q\' to to quit quit the the sample."); sample."); while(console.read while(console.read () ()!=!= 'q'); 'q');

3.1 FileSystemWatcher 예제 -II - 17 - public public static static void void OnChanged(object OnChanged(object source, source, FileSystemEventArgs FileSystemEventArgs e) e) Console.WriteLine Console.WriteLine ("File: ("File: " " + + e.fullpath e.fullpath +" +" " " + + e.changetype e.changetype ); ); public public static static void void OnRenamed(object OnRenamed(object source, source, RenamedEventArgs RenamedEventArgs e) e) Console.WriteLine Console.WriteLine ("File: ("File: 0 0 renamed renamed to to 1", 1", e.oldfullpath e.oldfullpath,e.fullpath,e.fullpath ); );

4. Reader/Writer로파일다루기 - 18-1. 텍스트파일 (Text File ) 다루기 1.1 StreamWriter 1.2 StreamReader 2. 바이너리파일 (Binary File) 다루기 2.1 BinaryWriter 2.2 BinaryReader

4.1. 텍스트파일 (Text File ) 다루기 - 19 - StreamWriter StreamReader

4.1.1 StreamWriter Text File 쓰기 (p269 참조 ) - 20 - 파일을생성 String, Integer, Floating Point Number 등을 Write Write() WriteLine() 파일닫기 (Close) //... StreamWriter sw sw = File.CreateText("MyFile.txt"); sw.writeline ("This is is my my file"); sw.writeline ( "I "I can can write ints 0 0 or or floats 1", 1, 1, 4.2); sw.close(); //...

4.1.2 StreamReader - Text File 읽기 (p268) - 21 - 생성 FileStream FileStreamf = File.Open( data.txt,filemode.open); StreamReader StreamReadersr sr = new new StreamReader(f); StreamReader(f); FileStream FileStreamf = new new FileStream( data.txt, FileMode.Open); FileMode.Open); StreamReader StreamReadersr sr = new new StreamReader(f); StreamReader(f); StreamReader StreamReadersr sr = new new StreamReader( data.txt, System.Text.Encoding.Default); // // 한글한글 Read Text from a File and Output It to the Console Read() : 한글자씩읽기 ReadLine() : 한라인씩읽기 ReadToEnd() : 파일끝까지읽기

4.1.2 StreamReader - Text File 읽기 (p268) - 22 - //... StreamReader sr sr = new new StreamReader( c:\\test.txt, System.Text.Encoding.Default); // // 한글한글 String input; while ((input=sr.readline())!=null) Console.WriteLine(input); Console.WriteLine ( "The end end of of the the stream has has been reached."); sr.close(); //...

4.2 바이너리파일 (Binary File ) 다루기 - 23 - BinaryWriter BinaryReader

4.2.1 BinaryWriter : Binary File로데이터쓰기 - 24 - using using System; System; using using System.IO; System.IO; // // public public static static void void Main() Main() // // Binary Binary file file 생성해서생성해서쓰기쓰기 if if (File.Exists (File.Exists("c:\\test.bin")) Console.WriteLine (" (" 이미이미파일이파일이있습니다있습니다.");."); FileStream FileStreamf = new new FileStream FileStream ("c:\\test.bin",filemode.createnew ); ); BinaryWriter BinaryWriterw = new new BinaryWriter BinaryWriter (f); (f); for for (int (inti =0; =0; i < 2000000;i++) 2000000;i++) w.write w.write (i); (i); w.close w.close (); (); f.close f.close (); ();

4.2.2 BinaryReader : Binary File 읽기 - 25 - //Binary //Binary File File 읽어오기읽어오기 FileStream FileStreamf = new new FileStream FileStream ("c:\\test.bin",filemode.open); BinaryReader BinaryReaderr = new new BinaryReader BinaryReader (f); (f); for for (int (inti=0;i<11;i++) i=0;i<11;i++) Console.WriteLine (r.readint32 (r.readint32()); ()); r.close r.close (); (); f.close f.close (); ();

Serialization - 26 -

Serialization 이란? - 27 - My Object SerializationInfo Serialize( ) Formatter BinaryFormatter SoapFormatter Stream Some Storage Device New Object SerializationInfo Formatter Stream Deserialize( ) (File, memory, buffer, socket) Persistence Store and retrieve a graph of objects to and from a file Remoting Pass by value arguments that are transmitted between processes

Binary Serialization - 28 - Mark the class with the Serializable attribute [Serializable] public class MyObject public int n1 = 0; public int n2 = 0; public string str = null; BinaryFormatter or SoapFormatter

Serialization/Deserialzation Example - 29 - MyObject MyObjectobj obj = new new MyObject(); MyObject(); obj.n1 obj.n1 = 10; 10; obj.n2 obj.n2 = 20; 20; obj.str obj.str = Hello ; = Hello ; FileStream FileStreams = File.Create( test.bin"); // // create create the the BinaryFormatter BinaryFormatter BinaryFormatter BinaryFormatterb = new new BinaryFormatter(); // // serialize serialize the the graph graph to to the the stream stream b.serialize(obj, b.serialize(obj, l); l); s.close(); s.close(); // // open open the the filestream filestream FileStream FileStreams = File.OpenRead( test.bin"); // // create create the the formatter formatter BinaryFormatter BinaryFormatterb = new new BinaryFormatter(); // // deserialize deserialize MyObject MyObjectp = (MyObject) (MyObject) b.deserialize(s); s.close(); s.close(); Console.WriteLine( n1=0 n2=1 n2=1 str=2,p.n1, str=2,p.n1, p.n2,p.str); p.n2,p.str);

XML Serialization - 30 - To serialize and deserialize an object Create the object Construct an XMLSerializer Call the Serialize/Deserialize methods StreamWriter myswriter = new StreamWriter( @ C:\myFileName.xml" ); ); try // // Serialize the MyObject object XmlSerializer serializer = new XmlSerializer( typeof ( MyObject ) ); ); serializer.serialize( myswriter, MyObject ); ); finally myswriter.close( ); );

- 31 - Assembly (24장컴포넌트프로그래밍 ) Assembly 란? Private Assembly Shared Assembly

1. Assembly 란 - 32 -.Exe 또는.dll 과같은실행파일 Ildasm C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\ildasm.exe Module과 resource, Manifest를패키징한것 Manifest : Assembly 이름, 버전정보, 참조되는 Assembly, Type 정보등 Assembly :.dll 또는.exe Manifest Resource Module class

1.1 Assembly 만들기 - 33 - Visual C# 2008 Express Edition 사용 클래스라이브러리만들기 (.dll) 클래스라이브러리사용 - 참조추가.NET SDK Compiler 사용 클래스라이브러리만들기 C>csc /out:mylibrary.dll /t:library mycode.cs 클래스라이브러리사용 C>csc /r:mylibrary.dll main.cs

1.2 internal - 34 - Internal Access Modifier 하나의 Assembly 안에서만접근가능 class BankAccount // // default: internal private double balance ; // // default:private internal void Deposit( double amount) // // default:public balance += += amount;

1.3 실습 클래스라이브러리만들기 - 35 - Visual C# 2008 Expression Edition을시작하여파일 - 새프로젝트 - 클래스라이브러리를선택하고이름은 MyLibrary를입력한다. 다음코드를추가하고빌드하여 MyLibrary.dll이생성된것을확인한다. using System; namespace MyLibrary public class Class1 public string HelloWorld() return "Hello,World!!"; public int Add(int a, a, int b) b) return a + b; b;

1.3 실습 클래스라이브러리사용하기 - 36 - 솔루션탐색기에서추가 - 새프로젝트 - Windows 응용프로그램을선택하고이름은 UseLibrary를입력한다. 다음과같이폼을만들고 MyLibrary를참조추가한다.

1.3 실습 클래스라이브러리사용하기 - 37 - public 다음과 partial 같이 class 코드를 Form1 : 추가하고 Form 빌드하여실행해본다. public partial class Form1 : Form // //.... private void button1_click(object sender, EventArgs e) e) MyLibrary.Class1 obj = new MyLibrary.Class1(); int r = obj.add(convert.toint32(textbox1.text), Convert.ToInt32(textBox2.Text)); MessageBox.Show(" 결과는 " + r.tostring() + " 입니다 ");

2. Private Assembly 와 Shared Assembly - 38 - Private Assembly 프로그램디렉토리나 Assembly 이름과같은하위디렉토리에위치 해당프로그램만사용 Shared Assembly=Strong-Named Assembly 여러프로그램이공유 GAC(Global Assembly Cache 전역어셈블리캐시 ) 에등록 C:/windows/assembly 탐색기에서해당어셈블리를드래깅 or gacutil 를사용 강력한이름 (Strong-Name 이필요 )

2.1 실습 - Shared Assembly - 39 - 탐색기를두개띄운다. 앞에서작성한 MyLibrary.dll를드래깅하여다른탐색기의 GAC(c:\windows\assembly) 로드래깅한다. 솔루션탐색기에서 Properties를선택하여, 서명탭을선택하여다음그림과같이강력한이름을생성하여빌드한다.

2.1 실습 - Shared Assembly - 40 - 다시 MyLibrary.dll를드래깅하여 GAC(c:\windows\assembly) 로드래깅한다. 성공적으로드래깅됨을확인한다. UseLibrary 프로젝트의솔루션탐색기에서참조 -MyLibrary.dll를삭제하고강력한이름을가지는.dll로다시참조추가한다. \UseLibrary\bin\Debug\MyLibrary.dll를삭제하고실행해본다.

3. Assembly 버전관리 - 41 - <Major>.<Minor>.<Build>.<Revision> 1.0.0.0과 1.0.0.1은호환됨 1.0.0.0과 2.0.0.0은호환안됨 AssemblyInfo.cs <Assembly:AssemblyVersion( 1.0.* )> 구성파일생성하기 ApplicationName.exe.config.NET Framework Configruation마법사로생성가능 (mscorcfg.msc)

3. Assembly 버전관리 - 42 - ApplicationName.exe.config <configuration> <runtime> <assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentassembly> <assemblyidentity name=" MyLibrary " publickeytoken="f0548c0027634b66" culture=""/> <publisherpolicy apply="no"/> <bindingredirect oldversion="2.0.0.0" newversion="2.0.1.0"/> </dependentassembly> </assemblybinding> </runtime> </configuration>