2009-05-15 3 views
5

GAC에없는 외부 어셈블리를 사용하는 ASP.NET 응용 프로그램이 있습니다. 응용 프로그램은 컴파일 할 때 어셈블리를 bin 디렉토리에 복사하는 .refresh 파일을 가지고 있습니다.Visual Studio가없는 ASP.NET 응용 프로그램에서 참조를 어떻게 새로 고 칩니 까?

응용 프로그램 파일을 가상 디렉터리에 복사하여 프로덕션 서버에 응용 프로그램을 설치할 때 bin 디렉터리는 .refresh 파일이 있으면 자동으로 업데이트되지 않습니다. aspnet_compiler 도구를 사용해 보았지만 이미 어셈블리가 bin 디렉토리에 있기를 기대하기 때문에 작동하지 않습니다.

Visual Studio없이 .NET에서 응용 프로그램의 bin 디렉토리를 업데이트하려면 어떻게합니까?

답변

1

때 .refresh 파일을 그냥 VS 그것이 원본을 추적하고 변경 한 경우를 복사해야 알 수 있도록 있습니다 새 버전은/bin 폴더에 있습니다. 그것들은 원래 파일에 대한 경로가있는 텍스트 파일 일뿐입니다. 수정 된 날짜가 비교에 사용됩니다.

당신이 말할 때 :

내가 프로덕션 서버에서 응용 프로그램을 설치

(가상 디렉토리에 응용 프로그램 파일을 복사하여), bin 디렉토리가 자동으로 업데이트되지 않습니다.

정확히 무엇을 의미합니까? bin 디렉토리의 내용을 프로덕션 서버로 복사하지 않습니까? 응용 프로그램과 함께 종속 어셈블리를 배포해야합니다.

+0

아니요, bin 디렉토리의 내용을 복사하지 않습니다. 참조 된 어셈블리가 별도로 설치 되었기 때문에 프로덕션 시스템에 설치해야하며 설치가 bin 디렉토리에 자동으로 복사 될 것이라고 가정 했었습니다. 따라서 어셈블리를 복사해도 처음부터 프로덕션 시스템에 설치하는 것에 대해 걱정할 필요가 없다는 것을 의미합니다. 앱 설치의 일부일뿐입니다. – Ferruccio

+0

솔직히 말해서 설치 프로그램이 무엇인지에 달려 있습니다. (샘플, 도움말, dll 등) 일부 파일을 압축 해제 한 다음, 아니요, 프로덕션 시스템을 설치할 필요가 없으며 참조 된 DLL을 복사하십시오. . 다른 구성 작업을 수행하는 경우 프로덕션 시스템에서 해당 단계가 완료되었는지 확인해야합니다.그러나 일반적으로 bin 폴더의 dll을 사용하여 로컬에서 실행할 수 있다면 프로덕션으로 복사 할 수 있어야합니다. –

0

asp.net의 캐시 디렉토리 도움이 될 지우기 :

C:\WINDOWS\Microsoft.NET\Framework\ 
FRAMEWORK_VERSION\Temporary ASP.NET Files\YOUR_APP_NAME 
+0

으로 빌드해야합니다. 도움이 안돼. – Ferruccio

0

해당 .refresh 파일을 삭제하십시오. 당신의 asp.net 응용 프로그램 폴더

  • ASP 빌드를에

    • 사본을 해당 파일 :

      은 간단한 빌드 스크립트 (... 당신이 cmd를,은 NAnt, 레이크, psake을 원하는대로 사용하는) 것을 확인합니다. 그물 앱.

    또는 당신은 당신의 .csproj 파일을 편집하고 같은 것을 추가 할 수 있습니다

    <ProjectExtensions> 
        <PropertyGroup> 
        <PreBuildEvent>copy c:\path\to\dll\files $(ProjectDir)$(OutDir)</PreBuildEvent> 
        </PropertyGroup> 
    </ProjectExtensions> 
    

    이것은 당신의 ASP의 출력 디렉토리에 dll 파일을 복사합니다 사전 빌드 작업을 추가합니다. 그물 앱. MsBuild

  • 관련 문제