Assembly.Load 메서드

정의

어셈블리를 로드합니다.

오버로드

Load(Byte[], Byte[], SecurityContextSource)

생성된 어셈블리가 들어 있고 경우에 따라 기호도 포함하고 보안 컨텍스트의 소스도 지정하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

Load(Byte[], Byte[], Evidence)
사용되지 않습니다.
사용되지 않습니다.

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호 및 증명 정보도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

Load(String, Evidence)
사용되지 않습니다.
사용되지 않습니다.

해당 표시 이름이 지정된 어셈블리를 로드한 다음 제공된 증명을 사용하여 이 어셈블리를 호출자의 도메인에 로드합니다.

Load(AssemblyName, Evidence)
사용되지 않습니다.
사용되지 않습니다.

해당 AssemblyName이 지정된 어셈블리를 로드합니다. 어셈블리는 제공된 증명을 사용하여 호출자의 도메인에 로드됩니다.

Load(Byte[])

내보낸 어셈블리가 포함된 COFF(Common Object File Format) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

Load(String)

지정된 이름으로 어셈블리를 로드합니다.

Load(AssemblyName)

해당 AssemblyName이 지정된 어셈블리를 로드합니다.

Load(Byte[], Byte[])

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

Load(Byte[], Byte[], SecurityContextSource)

생성된 어셈블리가 들어 있고 경우에 따라 기호도 포함하고 보안 컨텍스트의 소스도 지정하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::SecurityContextSource securityContextSource);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.SecurityContextSource securityContextSource);
static member Load : byte[] * byte[] * System.Security.SecurityContextSource -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityContextSource As SecurityContextSource) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

rawSymbolStore
Byte[]

어셈블리의 기호를 나타내는 원시 바이트가 포함된 바이트 배열입니다.

securityContextSource
SecurityContextSource

보안 컨텍스트의 소스입니다.

반환

Assembly

로드된 어셈블리입니다.

예외

rawAssembly이(가) null인 경우

rawAssembly는 유효한 어셈블리가 아닙니다.

또는

rawAssembly가 현재 로드된 버전보다 이후 버전의 공용 언어 런타임으로 컴파일되었습니다.

securityContextSource 값이 열거형 값 중 하나가 아닙니다.

설명

어셈블리 보안 컨텍스트에 대 한 지정된 된 소스를 사용 하 여 호출자의 애플리케이션 도메인에 로드 됩니다. 지정된 경우 rawSymbolStore 어셈블리의 기호를 나타내는 원시 바이트도 로드됩니다.

적용 대상

Load(Byte[], Byte[], Evidence)

주의

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

주의

이 API는 이제 사용되지 않습니다.

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호 및 증명 정보도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityEvidence As Evidence) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

rawSymbolStore
Byte[]

어셈블리의 기호를 나타내는 원시 바이트가 포함된 바이트 배열입니다.

securityEvidence
Evidence

어셈블리 로드에 사용할 증명 정보입니다.

반환

Assembly

로드된 어셈블리입니다.

특성

예외

rawAssembly이(가) null인 경우

rawAssembly는 유효한 어셈블리가 아닙니다.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 rawAssembly가 이후 버전으로 컴파일되었습니다.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.

securityEvidencenull가 아닙니다. 기본적으로 레거시 CAS 정책은 .NET Framework 4에서 사용하도록 설정되지 않습니다. 사용하도록 설정 securityEvidence 되지 않은 경우 사용해야 합니다null.

설명

어셈블리는 제공된 증명을 사용하여 호출자의 도메인에 로드됩니다. 어셈블리의 기호를 나타내는 원시 바이트도 로드됩니다.

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증명 정보 병합에 대한 규칙은 다음과 같습니다.

  • 매개 변수가 없는 Evidence 메서드를 Load 사용하면 로더가 제공하는 증명 정보로 어셈블리가 로드됩니다.

  • 매개 변수와 함께 메서드를 Load Evidence 사용하면 증명 정보가 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수와 Load 함께 메서드 오버로드를 Byte[] 사용하여 COFF 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다. 이는 .NET Framework 버전 1.1 SP1(서비스 팩 1) 및 후속 릴리스에 적용됩니다.

    참고

    sp1이 없는 .NET Framework 버전 1.0 및 버전 1.1에서 매개 변수와 함께 Byte[] 메서드 오버로드를 사용하여 Load COFF 이미지를 로드하는 경우 증거가 결합됩니다. Zone``Site 호출 Url 어셈블리에서 상속되고 COFF 어셈블리 StrongName Hash 에서 가져옵니다.

  • 매개 변수 Evidence 와 함께 메서드를 Load Byte[] 사용하고 COFF 이미지를 로드하는 경우 제공된 증명 정보만 사용됩니다. 호출 어셈블리의 증거와 COFF 이미지의 증거는 무시됩니다.

C++ 실행 파일을 BadImageFormatException반영하면 . 이는 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 섹션을 .reloc 제거하여 발생할 가능성이 큽니다. C++ 실행 파일의 .reloc 주소를 유지하려면 연결할 시기를 지정 /fixed:no 합니다.

동일한 어셈블리에서 메서드를 Load 두 번 이상 호출하지만 다른 증명 정보를 지정한 경우 공용 언어 런타임은 서로 다른 증명 정보 사양의 같음과 무결성을 확인할 수 없으므로 throw하지 FileLoadException 않습니다. 첫 번째 성공 증거는 사용되는 증거입니다.

이 메서드 오버로드는 항상 자체 매핑을 사용하여 새 Assembly 개체를 만듭니다.

적용 대상

Load(String, Evidence)

주의

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

주의

이 API는 이제 사용되지 않습니다.

해당 표시 이름이 지정된 어셈블리를 로드한 다음 제공된 증명을 사용하여 이 어셈블리를 호출자의 도메인에 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String, assemblySecurity As Evidence) As Assembly

매개 변수

assemblyString
String

어셈블리의 표시 이름입니다.

assemblySecurity
Evidence

어셈블리 로드에 사용할 증명 정보입니다.

반환

Assembly

로드된 어셈블리입니다.

특성

예외

assemblyString이(가) null인 경우

assemblyString 가 없는 경우

assemblyString는 유효한 어셈블리가 아닙니다.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyString가 이후 버전으로 컴파일되었습니다.

찾은 파일을 로드할 수 없습니다.

또는

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.

설명

FileLoadException 는 전체 어셈블리 이름을 지정하고 단순 이름과 일치하는 첫 번째 어셈블리의 버전, 문화권 또는 공개 키 토큰이 다른 경우 assemblyString throw됩니다. 로더는 단순 이름과 일치하는 다른 어셈블리를 계속 검색하지 않습니다.

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

  • 매개 변수가 없는 Evidence 메서드를 Load 사용하면 로더가 제공하는 증명 정보로 어셈블리가 로드됩니다.

  • 매개 변수와 함께 메서드를 Load Evidence 사용하면 증명 정보가 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수가 있는 Load 메서드 오버로드 Byte[] 를 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다. 이는 .NET Framework 버전 1.1 SP1(서비스 팩 1) 및 후속 릴리스에 적용됩니다.

    참고

    sp1이 없는 .NET Framework 버전 1.0 및 버전 1.1에서 매개 변수와 함께 Byte[] 메서드 오버로드를 사용하여 Load COFF 이미지를 로드하면 증거가 결합됩니다. Zone``SiteUrl 호출 어셈블리에서 상속되고 COFF 어셈 StrongName Hash 블리에서 가져옵니다.

  • 매개 변수 Evidence 와 함께 Byte[] 메서드를 Load 사용하고 COFF 이미지를 로드하는 경우 제공된 증명 정보만 사용됩니다. 호출 어셈블리의 증거와 COFF 이미지의 증거는 무시됩니다.

C++ 실행 파일을 BadImageFormatException반영하면 . 이는 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 섹션을 .reloc 제거하여 발생할 가능성이 큽니다. C++ 실행 파일의 .reloc 주소를 유지하려면 연결할 때 지정 /fixed:no 합니다.

동일한 어셈블리에서 이 메서드를 두 번 이상 호출하지만 다른 증명 정보를 지정한 경우 공용 언어 런타임은 서로 다른 증거 사양의 같음과 무결성을 확인할 수 없기 때문에 throw FileLoadException 되지 않습니다. 첫 번째 성공 증거는 사용되는 증거입니다.

.NET Framework 버전 2.0에서는 프로세서 아키텍처가 어셈블리 ID에 추가되며 어셈블리 이름 문자열의 일부로 지정할 수 있습니다. 예를 들어 "ProcessorArchitecture=msil"입니다. 그러나 어셈블리 이름을 지정하는 권장 방법은 개체를 AssemblyName 만들고 메서드의 Load 적절한 오버로드에 전달하는 것입니다. AssemblyName.ProcessorArchitecture을 참조하세요.

추가 정보

적용 대상

Load(AssemblyName, Evidence)

주의

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

주의

이 API는 이제 사용되지 않습니다.

해당 AssemblyName이 지정된 어셈블리를 로드합니다. 어셈블리는 제공된 증명을 사용하여 호출자의 도메인에 로드됩니다.

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName, assemblySecurity As Evidence) As Assembly

매개 변수

assemblyRef
AssemblyName

로드될 어셈블리를 설명하는 개체입니다.

assemblySecurity
Evidence

어셈블리 로드에 사용할 증명 정보입니다.

반환

Assembly

로드된 어셈블리입니다.

특성

예외

assemblyRef이(가) null인 경우

assemblyRef 가 없는 경우

assemblyRef는 유효한 어셈블리가 아닙니다.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyRef가 이후 버전으로 컴파일되었습니다.

어셈블리 또는 모듈이 서로 다른 두 증명 정보로 두 번 로드되었습니다.

또는

assemblyRef은 원격 어셈블리를 지정하지만 원격 어셈블리에서 코드를 실행하는 기능은 사용할 수 없습니다. <loadFromRemoteSources>를 확인하세요.

설명

FileLoadException 는 전체 어셈블리 이름을 지정하고 단순 이름과 일치하는 첫 번째 어셈블리의 버전, 문화권 또는 공개 키 토큰이 다른 경우 assemblyRef throw됩니다. 로더는 단순 이름과 일치하는 다른 어셈블리를 계속 검색하지 않습니다. .NET Framework 4부터는 원격 어셈블리에서 코드 실행이 기본적으로 사용되지 않으므로 원격 어셈블리를 지정하는 경우에도 assemblyRef throw FileLoadException 됩니다. 원격 위치에서 로드된 코드를 실행할 수 있도록 하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

참고

속성 집합에만 CodeBase 사용하지 AssemblyName 마세요. 이 속성은 CodeBase 어셈블리 ID의 요소(예: 이름 또는 버전)를 제공하지 않으므로 메서드에서 예상한 대로 ID별 로드 규칙에 따라 로드가 Load 발생하지 않습니다. 대신, 어셈블리는 부하에서 규칙을 사용하여 로드됩니다. 로드-원본 컨텍스트 사용의 단점에 대한 자세한 내용은 어셈블리 로드Assembly.LoadFrom 대한 메서드 오버로드 또는 모범 사례를 참조하세요.

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

  • 매개 변수가 없는 Evidence 메서드를 Load 사용하면 로더가 제공하는 증명 정보로 어셈블리가 로드됩니다.

  • 매개 변수와 함께 메서드를 Load Evidence 사용하면 증명 정보가 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수가 있는 Load 메서드 오버로드 Byte[] 를 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다. 이는 .NET Framework 버전 1.1 SP1(서비스 팩 1) 및 후속 릴리스에 적용됩니다.

    참고

    sp1이 없는 .NET Framework 버전 1.0 및 버전 1.1에서 매개 변수와 함께 Byte[] 메서드 오버로드를 사용하여 Load COFF 이미지를 로드하면 증거가 결합됩니다. Zone``SiteUrl 호출 어셈블리에서 상속되고 COFF 어셈 StrongName Hash 블리에서 가져옵니다.

  • 매개 변수 Evidence 와 함께 Byte[] 메서드를 Load 사용하고 COFF 이미지를 로드하는 경우 제공된 증명 정보만 사용됩니다. 호출 어셈블리의 증거와 COFF 이미지의 증거는 무시됩니다.

C++ 실행 파일을 BadImageFormatException반영하면 . 이는 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 섹션을 .reloc 제거하여 발생할 가능성이 큽니다. C++ 실행 파일의 .reloc 주소를 유지하려면 연결할 때 지정 /fixed:no 합니다.

참고

속성과 AssemblyName.CodeBase 속성이 모두 AssemblyName.Name 설정된 경우 어셈블리를 로드하려는 첫 번째 시도에서는 표시 이름(버전, 문화권 등)을 사용합니다( 속성에서 반환한 Assembly.FullName 대로). 파일을 찾을 CodeBase 수 없는 경우 어셈블리를 검색하는 데 사용됩니다. 어셈블리를 사용하여 CodeBase찾을 경우 표시 이름이 어셈블리와 일치합니다. 일치가 실패하면 throw FileLoadException 됩니다.

동일한 어셈블리에서 메서드를 Load 두 번 이상 호출하지만 다른 증명 정보가 지정된 경우 공용 언어 런타임은 서로 다른 증거 사양의 같음과 무결성을 확인할 수 없기 때문에 throw FileLoadException 되지 않습니다. 첫 번째 성공 증거는 사용되는 증거입니다.

추가 정보

적용 대상

Load(Byte[])

내보낸 어셈블리가 포함된 COFF(Common Object File Format) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly);
public static System.Reflection.Assembly Load (byte[] rawAssembly);
static member Load : byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte()) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

반환

Assembly

로드된 어셈블리입니다.

예외

rawAssembly이(가) null인 경우

rawAssembly는 유효한 어셈블리가 아닙니다.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 rawAssembly가 이후 버전으로 컴파일되었습니다.

설명

이 메서드를 사용하여 로드되는 어셈블리의 신뢰 수준은 호출 어셈블리의 신뢰 수준과 동일합니다. 애플리케이션 도메인의 신뢰 수준 사용 하 여 바이트 배열에서 어셈블리를 로드 하려면 사용 된 Load(Byte[], Byte[], SecurityContextSource) 메서드 오버 로드 합니다. 바이트 배열을 사용하는 메서드의 Load 오버로드와 함께 증거를 사용하는 방법에 대한 자세한 내용은 메서드 오버로드를 Load(Byte[], Byte[], Evidence) 참조하세요.

C++ 실행 파일을 BadImageFormatException반영하면 . 이는 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 섹션을 .reloc 제거하여 발생할 가능성이 큽니다. C++ 실행 파일의 .reloc 주소를 유지하려면 연결할 때 지정 /fixed:no 합니다.

이 메서드 오버로드는 항상 자체 매핑을 사용하여 새 Assembly 개체를 만듭니다.

적용 대상

Load(String)

지정된 이름으로 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString);
public static System.Reflection.Assembly Load (string assemblyString);
static member Load : string -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String) As Assembly

매개 변수

assemblyString
String

긴 형식 또는 짧은 형식의 어셈블리 이름입니다.

반환

Assembly

로드된 어셈블리입니다.

예외

assemblyString이(가) null인 경우

assemblyString 이 빈 문자열입니다.

assemblyString 가 없는 경우

찾은 파일을 로드할 수 없습니다.

assemblyString는 유효한 어셈블리가 아닙니다.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyString가 이후 버전으로 컴파일되었습니다.

예제

다음 예제에서는 정규화된 이름이 지정된 어셈블리를 로드하고 지정된 어셈블리에 포함된 모든 형식을 나열합니다. 참조 된 정규화 된 어셈블리 이름을 가져오는 방법에 대 한 내용은 어셈블리 이름합니다.

using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
int main()
{
    // You must supply a valid fully qualified assembly name.            
    Assembly^ SampleAssembly = Assembly::Load
        ( "SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3" );
    array<Type^>^ Types = SampleAssembly->GetTypes();
    
    // Display all the types contained in the specified assembly.
    IEnumerator^ myEnum = Types->GetEnumerator();
    Type^ oType;
    while ( myEnum->MoveNext() )
    {
        oType = safe_cast<Type^>(myEnum->Current);
        Console::WriteLine( oType->Name );
    }
}
using System;
using System.Reflection;

class Class1
{
    public static void Main()
    {
        // You must supply a valid fully qualified assembly name.
        Assembly SampleAssembly = Assembly.Load
            ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
        // Display all the types contained in the specified assembly.
        foreach (Type oType in SampleAssembly.GetTypes()) {
            Console.WriteLine(oType.Name);
        }
    }
}
Imports System.Reflection

Class Class1
    Public Shared Sub Main()
        ' You must supply a valid fully qualified assembly name.            
        Dim SampleAssembly As [Assembly] = _
            [Assembly].Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3")
        Dim oType As Type
        ' Display all the types contained in the specified assembly.
        For Each oType In SampleAssembly.GetTypes()
            Console.WriteLine(oType.Name)
        Next oType
    End Sub	'LoadSample
End Class

설명

올바른 어셈블리를 로드하려면 긴 형식의 어셈블리 이름을 전달하여 메서드를 호출 Load 하는 것이 좋습니다. 긴 형식의 어셈블리 이름은 버전, 문화권, 공개 키 토큰 및 선택적으로 프로세서 아키텍처와 함께 간단한 이름(예: System.dll 어셈블리의 "시스템")으로 구성됩니다. 어셈블리의 FullName 속성에 해당합니다. 다음 예제에서는 긴 이름을 사용하여 .NET Framework 4에 대한 System.dll 어셈블리를 로드하는 방법을 보여 줍니다.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      string longName = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
      Assembly assem = Assembly.Load(longName);
      if (assem == null)
         Console.WriteLine("Unable to load assembly...");
      else
         Console.WriteLine(assem.FullName);
   }
}
// The example displays the following output:
//        system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim longName As String = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      Dim assem As Assembly = Assembly.Load(longName)
      If assem Is Nothing Then
         Console.WriteLine("Unable to load assembly...")
      Else
         Console.WriteLine(assem.FullName)
      End If
   End Sub
End Module
' The example displays the following output:
'       system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

FileLoadException 는 전체 어셈블리 이름을 지정하고 단순 이름과 일치하는 첫 번째 어셈블리의 버전, 문화권 또는 공개 키 토큰이 다른 경우 assemblyString throw됩니다. 로더는 단순 이름과 일치하는 다른 어셈블리를 계속 검색하지 않습니다.

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

  • 매개 변수가 없는 Evidence 메서드를 Load 사용하면 로더가 제공하는 증명 정보로 어셈블리가 로드됩니다.

  • 매개 변수와 함께 메서드를 Load Evidence 사용하면 증명 정보가 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수가 있는 Load 메서드 오버로드 Byte[] 를 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다. 이는 .NET Framework 버전 1.1 SP1(서비스 팩 1) 및 후속 릴리스에 적용됩니다.

    참고

    sp1이 없는 .NET Framework 버전 1.0 및 버전 1.1에서 매개 변수와 함께 Byte[] 메서드 오버로드를 사용하여 Load COFF 이미지를 로드하면 증거가 결합됩니다. Zone``SiteUrl 호출 어셈블리에서 상속되고 COFF 어셈 StrongName Hash 블리에서 가져옵니다.

  • 매개 변수 Evidence 와 함께 Byte[] 메서드를 Load 사용하고 COFF 이미지를 로드하는 경우 제공된 증명 정보만 사용됩니다. 호출 어셈블리의 증거와 COFF 이미지의 증거는 무시됩니다.

C++ 실행 파일을 BadImageFormatException반영하면 . 이는 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 섹션을 .reloc 제거하여 발생할 가능성이 큽니다. C++ 실행 파일의 .reloc 주소를 유지하려면 연결할 때 지정 /fixed:no 합니다.

.NET Framework 버전 2.0에서는 프로세서 아키텍처가 어셈블리 ID에 추가되며 어셈블리 이름 문자열의 일부로 지정할 수 있습니다. 예를 들어 "ProcessorArchitecture=msil"입니다. 그러나 어셈블리 이름을 지정하는 권장 방법은 개체를 AssemblyName 만들어 메서드의 Load 적절한 오버로드에 전달하는 것입니다. AssemblyName.ProcessorArchitecture을 참조하세요.

추가 정보

적용 대상

Load(AssemblyName)

해당 AssemblyName이 지정된 어셈블리를 로드합니다.

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef);
static member Load : System.Reflection.AssemblyName -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName) As Assembly

매개 변수

assemblyRef
AssemblyName

로드될 어셈블리를 설명하는 개체입니다.

반환

Assembly

로드된 어셈블리입니다.

예외

assemblyRef이(가) null인 경우

assemblyRef 가 없는 경우

찾은 파일을 로드할 수 없습니다.

또는

assemblyRef은 원격 어셈블리를 지정하지만 원격 어셈블리에서 코드를 실행하는 기능은 사용할 수 없습니다. <loadFromRemoteSources>를 확인하세요.

참고: Windows 스토어 앱 또는 이식 가능한 클래스 라이브러리용 .NET에서 대신 기본 클래스 예외IOException를 catch합니다.

assemblyRef는 유효한 어셈블리가 아닙니다. 또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 assemblyRef가 이후 버전으로 컴파일되었습니다.

예제

다음 예제에서는 개체를 AssemblyName 인스턴스화하고 이를 사용하여 어셈블리를 로드합니다 sysglobal.dll . 그런 다음, 이 예제에서는 어셈블리의 공용 형식의 전체 이름을 표시합니다.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      String fullName = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                        "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL";
      var an = new AssemblyName(fullName);
      var assem = Assembly.Load(an);
      Console.WriteLine("Public types in assembly {0}:", assem.FullName);
      foreach (var t in assem.GetTypes())
         if (t.IsPublic)
            Console.WriteLine("   {0}", t.FullName);
   }
}
// The example displays the following output:
//   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
//      System.Globalization.CultureAndRegionInfoBuilder
//      System.Globalization.CultureAndRegionModifiers
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim fullName As String = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                               "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL"
      Dim an As New AssemblyName(fullName)
      Dim assem As Assembly = Assembly.Load(an)
      Console.WriteLine("Public types in assembly {0}:", assem.FullName)
      For Each t As Type in assem.GetTypes()
         If t.IsPublic Then Console.WriteLine("   {0}", t.FullName)
      Next
   End Sub
End Module
' The example displays the following output:
'   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
'      System.Globalization.CultureAndRegionInfoBuilder
'      System.Globalization.CultureAndRegionModifiers

설명

FileLoadException 는 전체 어셈블리 이름을 지정하고 단순 이름과 일치하는 첫 번째 어셈블리에 다른 버전, 문화권 또는 공개 키 토큰이 있는 경우 assemblyRef throw됩니다. 로더는 단순 이름과 일치하는 다른 어셈블리를 계속 검색하지 않습니다. .NET Framework 4부터는 원격 어셈블리에서 코드 실행이 기본적으로 사용되지 않으므로 원격 어셈블리를 지정하는 경우에도 assemblyRef throw FileLoadException 됩니다. 원격 위치에서 로드된 코드를 실행할 수 있도록 하려면 구성 요소를 사용할 <loadFromRemoteSources> 수 있습니다.

참고

속성 집합에만 CodeBase 사용하지 AssemblyName 마세요. 이 속성은 CodeBase 어셈블리 ID의 요소(예: 이름 또는 버전)를 제공하지 않으므로 메서드에서 예상한 대로 ID별 로드 규칙에 따라 로드가 Load 발생하지 않습니다. 대신, 어셈블리는 부하에서 규칙을 사용하여 로드됩니다. 로드-원본 컨텍스트 사용의 단점에 대한 자세한 내용은 어셈블리 로드Assembly.LoadFrom 대한 메서드 오버로드 또는 모범 사례를 참조하세요.

어셈블리에 대한 특정 권한 부여 여부는 증명 정보를 바탕으로 합니다. 어셈블리 및 보안 증거 병합에 대한 규칙은 다음과 같습니다.

  • 매개 변수가 없는 Evidence 메서드를 Load 사용하면 로더가 제공하는 증명 정보로 어셈블리가 로드됩니다.

  • 매개 변수와 함께 메서드를 Load Evidence 사용하면 증명 정보가 병합됩니다. 메서드에 대한 인수 Load 로 제공된 증거 조각은 로더가 제공한 증거 조각을 대체합니다.

  • 매개 변수가 있는 Load 메서드 오버로드 Byte[] 를 사용하여 COFF(공용 개체 파일 형식) 이미지를 로드하는 경우 호출 어셈블리에서 증명 정보가 상속됩니다. 이는 .NET Framework 버전 1.1 SP1(서비스 팩 1) 및 후속 릴리스에 적용됩니다.

    참고

    sp1이 없는 .NET Framework 버전 1.0 및 버전 1.1에서 매개 변수와 함께 Byte[] 메서드 오버로드를 사용하여 Load COFF 이미지를 로드하면 증거가 결합됩니다. Zone``SiteUrl 호출 어셈블리에서 상속되고 COFF 어셈 StrongName Hash 블리에서 가져옵니다.

  • 매개 변수 Evidence 와 함께 Byte[] 메서드를 Load 사용하고 COFF 이미지를 로드하는 경우 제공된 증명 정보만 사용됩니다. 호출 어셈블리의 증거와 COFF 이미지의 증거는 무시됩니다.

C++ 실행 파일을 BadImageFormatException반영하면 . 이는 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 섹션을 .reloc 제거하여 발생할 가능성이 큽니다. C++ 실행 파일의 .reloc 주소를 유지하려면 연결할 때 지정 /fixed:no 합니다.

참고

속성과 AssemblyName.CodeBase 속성이 모두 AssemblyName.Name 설정된 경우 어셈블리를 로드하려는 첫 번째 시도에서는 표시 이름(버전, 문화권 등)을 사용합니다( 속성에서 반환한 Assembly.FullName 대로). 파일을 찾을 CodeBase 수 없는 경우 어셈블리를 검색하는 데 사용됩니다. 어셈블리를 사용하여 CodeBase찾을 경우 표시 이름이 어셈블리와 일치합니다. 일치가 실패하면 throw FileLoadException 됩니다.

추가 정보

적용 대상

Load(Byte[], Byte[])

생성된 어셈블리가 들어 있고 경우에 따라 어셈블리에 대한 기호도 포함하는 COFF(공용 개체 파일 형식) 기반 이미지를 사용하여 어셈블리를 로드합니다. 이 어셈블리는 호출자의 애플리케이션 도메인에 로드됩니다.

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore);
static member Load : byte[] * byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte()) As Assembly

매개 변수

rawAssembly
Byte[]

내보낸 어셈블리가 포함된 COFF 기반 이미지인 바이트 배열입니다.

rawSymbolStore
Byte[]

어셈블리의 기호를 나타내는 원시 바이트가 포함된 바이트 배열입니다.

반환

Assembly

로드된 어셈블리입니다.

예외

rawAssembly이(가) null인 경우

rawAssembly는 유효한 어셈블리가 아닙니다.

또는

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 rawAssembly가 이후 버전으로 컴파일되었습니다.

설명

이 메서드를 사용하여 로드되는 어셈블리의 신뢰 수준은 호출 어셈블리의 신뢰 수준과 동일합니다. 애플리케이션 도메인의 신뢰 수준 사용 하 여 바이트 배열에서 어셈블리를 로드 하려면 사용 된 Load(Byte[], Byte[], SecurityContextSource) 메서드 오버 로드 합니다. 바이트 배열을 사용하는 메서드의 Load 오버로드와 함께 증거를 사용하는 방법에 대한 자세한 내용은 메서드 오버로드를 Load(Byte[], Byte[], Evidence) 참조하세요.

C++ 실행 파일을 BadImageFormatException반영하면 . 이는 C++ 컴파일러가 실행 파일에서 재배치 주소 또는 섹션을 .reloc 제거하여 발생할 가능성이 큽니다. C++ 실행 파일의 .reloc 주소를 유지하려면 연결할 때 지정 /fixed:no 합니다.

이 메서드 오버로드는 항상 자체 매핑을 사용하여 새 Assembly 개체를 만듭니다.

적용 대상