/addmodule
컴파일러가 지정된 파일의 모든 형식 정보를 현재 컴파일 중인 프로젝트에서 사용할 수 있도록 만듭니다.
/addmodule:fileList
인수
- fileList
필수 요소.메타데이터는 포함되고 어셈블리 매니페스트는 포함되지 않은 파일을 쉼표로 구분한 목록입니다.파일 이름에 공백이 들어 있는 경우 해당 이름을 따옴표(" ")로 묶어야 합니다.
설명
fileList 매개 변수로 나열된 파일은 /target:module 옵션을 사용하거나 다른 컴파일러의 /target:module에 해당하는 옵션을 사용하여 만들어야 합니다.
/addmodule로 추가한 모든 모듈은 런타임에 출력 파일과 동일한 디렉터리에 있어야 합니다.즉, 컴파일 타임에는 모든 디렉터리에 모듈을 지정할 수 있지만 런타임에는 모듈이 응용 프로그램 디렉터리에 있어야 합니다.그렇지 않으면 TypeLoadException 오류가 발생합니다.
/addmodule과 함께 /target:module 이외의 /target(Visual Basic) 옵션을 암시적 또는 명시적으로 지정하면 /addmodule로 전달되는 파일이 프로젝트 어셈블리의 일부가 됩니다.어셈블리는 /addmodule을 사용하여 추가한 파일이 하나 이상 포함된 출력 파일을 실행하는 데 필요합니다.
/reference(Visual Basic)를 사용하여 어셈블리를 포함하는 파일에서 메타데이터를 가져올 수 있습니다.
[!참고]
/addmodule 옵션은 Visual Studio 개발 환경에서는 사용할 수 없고 명령줄에서 컴파일하는 경우에만 사용할 수 있습니다.
예제
다음 코드에서는 모듈을 만듭니다.
' t1.vb
' Compile with vbc /target:module t1.vb.
' Outputs t1.netmodule.
Public Class TestClass
Public i As Integer
End Class
다음 코드에서는 모듈의 형식을 가져옵니다.
' t2.vb
' Compile with vbc /addmodule:t1.netmodule t2.vb.
Option Strict Off
Namespace NetmoduleTest
Module Module1
Sub Main()
Dim x As TestClass
x = New TestClass
x.i = 802
System.Console.WriteLine(x.i)
End Sub
End Module
End Namespace
t1 을 실행하면 802가 출력됩니다.