2

VB.NET 클래스를 만들고 강력한 키를 만든 후 GacUtil을 사용하여 GAC에 추가했습니다. 그 부분은 순조롭게 진행되었습니다. 어셈블리가 GAC에 설치되어 있고 올바르게 설치/구성된 것 같습니다.GAC에 VB.NET 클래스를 추가하고 코드 숨김에 사용하는 방법

참고로, 어셈블리는 Tester라는 클래스이며 HelloWorld라는 공용 정적 메서드 하나를 노출합니다.이 정적 메서드는 "Hello World"라는 문자열을 반환합니다.

다음 단계는 Visual Studio 2005, Windows XP SP3을 사용하여 테스트 웹 응용 프로그램 (VB.NET 및 ASP.NET 2.0)을 만드는 것입니다. 테스트 웹 애플리케이션을 만들고 web.config 파일의 구성 섹션에 다음을 추가했습니다.

<div><%=BenGACTest.Tester.HelloWorld()%></div> 

나는 웹 브라우저에서 페이지를 실행하면 예상대로 실제로 모든 작품은 다음과 같습니다

<assemblies> 
<add assembly="BenGACTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e5b6cecb56999ca" /> 
</assemblies> 

나는 다음 내 aspx 페이지에 일부 인라인 코드를 추가했습니다. 페이지는 "Hello World"를 출력하고 모두 좋을 것 같습니다.

그러나 code-behind 페이지에서이 코드를 사용하는 방법을 모르겠습니다. "imports system"과 같이 어셈블리를 가져 오려고 시도하지만 IntelliSense에는 나타나지 않습니다.

또한 프로젝트에 대한 참조로 어셈블리를 추가하려고하면 설치된 어셈블리 목록에서 해당 어셈블리를 찾을 수 없습니다. 필자는 목록이 설치된 어셈블리의 동적 목록이 아니라 레지스트리에서 가져온 것이기 때문이라고 생각합니다.

내 목표는 프로젝트 참조로 추가하지 않고 코드 숨김 페이지에서 어셈블리를 사용하여 web.config 파일을 통해 어셈블리를 추가하는 것입니다.

아이디어가 있으십니까?

+0

나의 나쁜, didnt는 마지막 한 쌍 o 절을 읽었다. bin 폴더를 사용하거나 web.config 외부에서 GAC를 참조해도 상관이없는 경우 여기를 살펴보십시오. http://weblogs.asp.net/jdanforth/archive/2003/12/16/43841.aspx – daddywoodland

답변

4

Visual Studio에서 DLL을 사용하려면 로컬 버전을 참조하면됩니다. .NET은 응용 프로그램을 실행할 때 GAC 버전을 선호합니다. 또한 GAC에서 DLL을 사용할 수있을 때 제공해야한다고 생각하지 않지만 Project-> Add Reference 메뉴를 통해 DLL을 참조해야합니다.

편집 :이 forumpost가 도움이 될 수 있습니다 : http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/63bf8d34-42ad-4f3c-b0c9-cf7c33d77918.

+0

수동으로 참조를 추가하는 것을 피하고 싶습니다. 특히 web.config 파일을 통해 어셈블리를 추가하고 인라인 VB에서 aspx 페이지의 코드를 사용하면 문제가 없습니다. 코드 인라인을 어떻게 사용할 수 있습니까?하지만 코드 숨김에는 사용할 수 없습니까? – NJITBEN

+0

응용 프로그램은 어셈블리를 참조해야한다는 것을 알고 있어야하므로 프로젝트를 참조하십시오. DLL 등을 재배포 할 필요가 없으므로 큰 문제는 무엇입니까? –

관련 문제