.NET 어셈블리 란 무엇입니까? 나는 그물을 탐색했고 정의를 이해할 수 없습니다.
답변
보다 간단한 용어 : .NET 런타임 환경에서 실행할 수있는 (사전 컴파일 된) 코드 덩어리. .NET 프로그램은 하나 이상의 어셈블리로 구성됩니다.
답변
어셈블리는 .net 응용 프로그램의 가장 작은 배포 단위입니다. dll 또는 exe 일 수 있습니다 .
주로 두 가지 유형이 있습니다.
-
개인 어셈블리 :
한 응용 프로그램의 유일한 속성 인 dll 또는 exe입니다. 일반적으로 응용 프로그램 루트 폴더에 저장됩니다. -
공용 / 공유 어셈블리 :
한 번에 여러 응용 프로그램에서 사용할 수있는 dll입니다. 공유 어셈블리는 GAC, 즉 Global Assembly Cache에 저장됩니다 .
어려운 소리? Naa ….
GAC는 PC에 설치된 모든 소프트웨어의 공개 어셈블리 / dll을 찾을 수있는 C : \ Windows \ Assembly 폴더입니다.
세 번째이자 가장 적게 알려진 어셈블리 유형 인 Satellite Assembly가 있습니다.
위성 어셈블리에는 이미지 및 응용 프로그램에 필요한 기타 비 실행 파일과 같은 정적 객체 만 포함됩니다.
이것이 독자들을 도울 수 있기를 바랍니다!
답변
어셈블리
응용 프로그램을 컴파일하면 생성 된 MSIL 코드가 어셈블리에 저장됩니다. 어셈블리에는 다른 프로그램 (.exe 파일 확장자가 있음)없이 Windows에서 직접 실행할 수있는 실행 가능한 응용 프로그램 파일과 다른 응용 프로그램에서 사용하기위한 라이브러리 (.dll 확장자가있는)가 모두 포함됩니다.
어셈블리에는 MSIL을 포함 할뿐만 아니라 메타 정보 (즉, 메타 데이터라고도하는 어셈블리에 포함 된 정보에 대한 정보) 및 선택적 리소스 (사운드 파일 및 그림과 같은 MSIL에서 사용하는 추가 데이터)도 포함됩니다. 메타 정보를 통해 어셈블리를 완전히 설명 할 수 있습니다. 어셈블리를 사용하기 위해 다른 정보가 필요하지 않습니다. 즉, 시스템 레지스트리에 필요한 데이터를 추가하지 못하는 등의 상황을 피할 수 있습니다. 이는 다른 플랫폼으로 개발할 때 종종 문제가되었습니다.
즉, 응용 프로그램 배포는 파일을 원격 컴퓨터의 디렉터리에 복사하는 것만 큼 간단합니다. 대상 시스템에는 추가 정보가 필요하지 않으므로이 디렉토리에서 실행 파일을 실행하면됩니다 (.NET CLR이 설치되어 있다고 가정).
물론, 한 곳에서 애플리케이션을 실행하는 데 필요한 모든 것을 포함하고 싶지는 않을 것입니다. 여러 응용 프로그램에 필요한 작업을 수행하는 일부 코드를 작성할 수 있습니다. 그러한 상황에서는 재사용 가능한 코드를 모든 응용 프로그램에서 액세스 할 수있는 장소에 배치하는 것이 유용한 경우가 많습니다. .NET Framework에서 GAC (Global Assembly Cache)입니다. GAC에 코드를 배치하는 것은 간단합니다. 코드를 포함하는 어셈블리를이 캐시가 포함 된 디렉토리에 배치하면됩니다.
답변
어셈블리는 .NET Framework의 클래스가 저장되는 하드 드라이브의 실제 .dll 파일입니다. 예를 들어 ASP.NET Framework에 포함 된 모든 클래스는 System.Web.dll이라는 어셈블리에 있습니다.
보다 정확하게는 어셈블리는 .NET Framework의 기본 배포, 보안 및 버전 제어 단위입니다. 어셈블리는 여러 파일에 걸쳐있을 수 있으므로 종종 “논리”dll이라고합니다.
노트
.NET Framework (버전 2.0)에는 51 개의 어셈블리가 포함되어 있습니다.
개인 및 공유의 두 가지 유형의 어셈블리가 있습니다. 개인 어셈블리는 단일 응용 프로그램에서만 사용할 수 있습니다. 반면에 공유 어셈블리는 동일한 서버에있는 모든 응용 프로그램에서 사용할 수 있습니다.
공유 어셈블리는 GAC (전역 어셈블리 캐시)에 있습니다. 예를 들어 System.Web.dll 어셈블리와 .NET Framework에 포함 된 다른 모든 어셈블리는 전역 어셈블리 캐시에 있습니다.
노트
전역 어셈블리 캐시는 실제로 컴퓨터의 \ WINDOWS \ Assembly 폴더에 있습니다. \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 폴더에는 모든 어셈블리의 복사본이 별도로 있습니다. 첫 번째 어셈블리 집합은 런타임에 사용되고 두 번째 집합은 컴파일 타임에 사용됩니다.
응용 프로그램의 어셈블리에 포함 된 클래스를 사용하려면 먼저 어셈블리에 대한 참조를 추가해야합니다. 기본적으로 ASP.NET 응용 프로그램은 전역 어셈블리 캐시에 포함 된 가장 일반적인 어셈블리를 참조합니다.
mscorlib.dll
System.dll
System.Configuration.dll
System.Web.dll
System.Data.dll
System.Web.Services.dll
System.Xml.dll
System.Drawing.dll
System.EnterpriseServices.dll
System.Web.Mobile.dll
.NET Framework에서 특정 클래스를 사용하려면 두 가지 작업을 수행해야합니다. 먼저 응용 프로그램에서 클래스가 포함 된 어셈블리를 참조해야합니다. 둘째, 응용 프로그램은 클래스와 연결된 네임 스페이스를 가져와야합니다.
대부분의 경우 가장 일반적인 어셈블리가 자동으로 참조되므로 필요한 어셈블리를 참조하는 것에 대해 걱정할 필요가 없습니다. 그러나 특수 어셈블리를 사용해야하는 경우 어셈블리에 명시 적으로 참조를 추가해야합니다. 예를 들어 System.DirectoryServices 네임 스페이스의 클래스를 사용하여 Active Directory와 상호 작용해야하는 경우 응용 프로그램에 System.DirectoryServices.dll 어셈블리에 대한 참조를 추가해야합니다.
.NET Framework SDK 설명서의 각 클래스 항목에는 클래스와 관련된 어셈블리 및 네임 스페이스가 나열되어 있습니다. 예를 들어 설명서에서 MessageQueue 클래스를 조회하면이 클래스가 System.Messaging.dll 어셈블리에있는 System.Messaging 네임 스페이스에 있음을 알 수 있습니다.
Visual Web Developer를 사용하는 경우 메뉴 옵션 웹 사이트, 참조 추가를 선택하고 참조해야하는 어셈블리 이름을 선택하여 어셈블리에 대한 참조를 명시 적으로 추가 할 수 있습니다. 예를 들어, System.Messaging.dll 어셈블리에 대한 참조를 추가하면 Listing 1.4의 웹 구성 파일이 애플리케이션에 추가됩니다.
예 : Web.Config
enter code here
Visual Web Developer를 사용하지 않으려면 위 예제에서 파일을 직접 작성하여 System.Messaging.dll 어셈블리에 대한 참조를 추가 할 수 있습니다.
답변
Wikipedia는 다음과 같이 말합니다.
Microsoft .NET 프레임 워크에서 어셈블리는 배포, 버전 관리 및 보안에 사용하기 위해 부분적으로 컴파일 된 코드 라이브러리입니다. 프로세스 어셈블리 (EXE)와 라이브러리 어셈블리 (DLL)의 두 가지 유형이 있습니다. 프로세스 어셈블리는 라이브러리 어셈블리에 정의 된 클래스를 사용하는 프로세스를 나타냅니다. .NET 어셈블리에는 일반적으로 CLI 언어에서 생성 된 다음 CLR JIT (Just-In-Time) 컴파일러에 의해 런타임에 기계 언어로 컴파일되는 CIL 코드가 포함되어 있습니다. 어셈블리는 하나 이상의 파일로 구성 될 수 있습니다. 코드 파일을 모듈이라고합니다. 어셈블리에는 둘 이상의 코드 모듈이 포함될 수 있으며 다른 언어를 사용하여 코드 모듈을 만들 수 있으므로 기술적으로 여러 언어를 사용하여 어셈블리를 만들 수 있습니다.
당신이 정말로 찾아 보았다면 이해하지 못하는 것을 명확히하면 도움이 될 것입니다.
답변
참조 이 :
Microsoft .NET 프레임 워크에서 어셈블리는 배포, 버전 관리 및 보안에 사용하기 위해 부분적으로 컴파일 된 코드 라이브러리입니다.
답변
IL 코드에있는 클래스, 인터페이스, 열거 형 등의 물리적 컬렉션 .EXE 또는 .DLL 파일 일 수 있습니다. .EXE는 실행 파일이며 .DLL은 모든 .net 지원 언어에서 동적으로 사용될 수 있습니다.