programing

Microsoft.Web.Administration을 참조하는 방법은 무엇입니까?

procenter 2021. 1. 15. 19:45
반응형

Microsoft.Web.Administration을 참조하는 방법은 무엇입니까?


Microsoft.Web.Administration 어셈블리는 C:\Windows\System32\inetsrv내 컴퓨터에 있습니다. IIS의 일부로 설치되었다고 생각합니다. 어셈블리도 GAC에 있습니다.

다른 사람이 체크 아웃 할 수 있도록 프로젝트를 SVN에 커밋하려는 경우 내 프로젝트에서이 어셈블리를 어떻게 참조해야합니까? Microsoft.Web.AdministrationVisual Studio '참조 추가'목록에 나타나지 않습니다. 에 대한 참조를 추가 할 수 C:\Windows\System32\inetsrv\Microsoft.Web.Administration있지만 다른 개발자가 다른 경로 또는 드라이브에 설치했을 수 있으므로 이것은 나쁜 생각 인 것 같습니다.

또는 프로젝트 폴더에 복사 할 수 있지만 바이너리를 SVN에 커밋해야합니다.


다음 단계가 저에게 효과적입니다.

  1. 이동 C:\Windows\System32\inetsrv하여 파일 Microsoft.Web.Administration.dll있는지 확인하십시오 . Microsoft.Web.Administration.dllin 이없는 경우 C:\Windows\System32\inetsrvWindows 기능에서 IIS 관리 콘솔을 활성화하십시오.

Windows 기능에 관리 서비스 추가

  1. Visual Studio 프로젝트에서 다음에 대한 참조를 추가합니다 Microsoft.Web.Administration.dll.여기에 이미지 설명 입력
  2. 이제 .proj 파일에 다음 항목이 <HintPath>C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>있습니다.. <HintPath>%windir%\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>들어이 경로를 더 강력하게 만들 수 있습니다.

앱을 다른 시스템으로 이동하면 앱 Microsoft.Web.Administration.dll은 대상 시스템 참조 합니다. (가) 때문에 Microsoft.Web.Administration.dll윈도우 시스템 간의 다를 수는 응용 프로그램에서이 어셈블리 파일의 사본을 제공하지 않는 것이 좋습니다. 복사본이 대상 시스템의 IIS와 호환되지 않을 수 있습니다.

또한 Microsoft.Web.Administrator.dllWindows Update로 인해 및 IIS가 변경 될 수 있으므로 동일한 시스템에서 어셈블리 복사본을 참조하지 않는 것이 좋습니다 . 그러면 참조 된 복사본이 Microsoft.Web.Administrator.dll업데이트 된 IIS와 호환되지 않습니다.

Microsoft.Web.Administrator.dll이 대상 시스템에 없으면 위의 1 단계에서 설명한대로 관리 콘솔을 활성화합니다. 또는 cmd (관리자 DISM.exe권한으로 열기) 를 사용하고 다음 명령 통해 Windows 기능 관리 콘솔을 활성화 할 수 있습니다 .

C:\Windows\System32\Dism.exe /enable-feature /online /featurename:IIS-ManagementConsole

이 명령은 설정을 통해 앱을 배포하려는 경우 유용 할 수 있습니다.


프로젝트 파일을 수동으로 수정할 수 있습니다. 아래와 같이 참조를 추가 / 변경하면 위치에 관계없이 GAC에서 어셈블리를 찾습니다.

<Reference Include="Microsoft.Web.Administration, Version=7.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
    <SpecificVersion>False</SpecificVersion>
</Reference>

물론 "IIS 관리 콘솔"기능이 설치된 경우에만 해당됩니다. 코드에 힌트를 남길 수 있습니다.

#warning Windows feature "IIS management console" must be installed locally

NuGet에서 검색하여 설치합니다. 패키지 폴더에 설치되고 프로젝트 구조에 따라 위치를 변경하고 참조를 다시 추가하여 새 경로를 반영합니다. 일반적으로 lib 폴더를 만들고 모든 외부 라이브러리를 배치합니다.

프로젝트의 폴더 구조는

lib -> external libraries
src - > code
tools -> tools such as nant, etc

Microsoft.Web.AdministrationIIS를 프로그래밍 방식으로 관리하는 데 사용되며 참조 추가 창에서는 사용할 수 없습니다. C : \ Windows \ System32 \ inetsrv에서 참조를 추가하면 참조 문제가 발생합니다. 따라서 프로젝트 내부의 lib 폴더에 저장하고 SVN에서 확인하는 것이 좋습니다.


  1. 파일을 투사하는 경우 힌트 경로를 <HintPath>%windir%\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>.
  2. 체크인. 체크 아웃 한 사람은 IIS가 설치되어있는 경우 적절한 참조를 볼 수 있습니다. IIS가 설치되지 않은 경우 해결해야하는 참조 오류가 있습니다.

해결하려면 제어판의 프로그램을 통해 또는 @DzmitryLahoda가 지적한대로 명령 줄을 통해 IIS를 설치합니다.

다시 말하지만 NuGet 패키지를 가리키는 모든 트릭은 부적절합니다.

https://blog.lextudio.com/2015/05/whats-microsoft-web-administration-and-the-horrible-facts-you-should-know/


C : \ Windows \ System32 \ inetsrv

또는

C : \ Windows \ winsxs \ x86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.1.7600.16385_none_c8472944f22a9c81

C : \ Windows \ WinSxS \ x86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.3.9600.16384_none_5d1097a8ac709c4e


Nuget 사용 :

Microsoft.Web.Administration

여기에 이미지 설명 입력


이러한 어셈블리가 사전 빌드 이벤트를 통해 설치되었는지 확인하십시오.

Dism /online /Enable-Feature /FeatureName:IIS-WebServerManagementTools /All

이 방법으로 모든 기능을 갖춘 설치된 전체 IIS FeatureName에서 어셈블리에 대해 추측됩니다. 대안을 위해 모든 기능을 나열하십시오.

dism /online /Get-Features

DISM 8 이전의 Windows에서 사용할 수 있습니다. To service inbox drivers in an offline image of Windows Vista with Service Pack 2 (SP2) or Windows Server 2008 with SP2, you must use the Windows 7 version of DISM or PkgMgr. The Windows 7 version of DISM is available in Windows 7 and Windows PE 3.0 operating systems, or can be installed with the Windows Automated Installation Kit (Windows AIK) or the Windows OEM Preinstallation Kit (Windows OPK) for Windows 7.

Windows 7 이하에서도 시도해 볼 수 있습니다. start /w pkgmgr /iu:IIS-WebServerManagementTools


직접적인 대답이 아닌 약간의 추가 정보. IIS와 IIS Express는 동일한 DLL의 두 가지 버전을 사용하므로 앱에서 실수로 잘못된 버전을 가져올 수 있습니다. http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/ 참조


가장 간단한 방법은이 링크에서 Visual Studio에 NuGet을 설치하는 것입니다. http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c

그런 다음 Visual Studio에서 도구-> NuGet 패키지 관리자-> 패키지 관리자 콘솔로 이동합니다.

그런 다음 설치하려는 프로젝트가 될 기본 프로젝트를 선택하십시오.

마지막으로 Install-Package Microsoft.Web.Administration 명령을 실행 합니다 .


"참조 된 어셈블리"라는 솔루션에 새 프로젝트를 추가하고이 프로젝트에 DLL을 추가합니다. 이렇게하면 DLL이 소스 제어에있게됩니다. 그런 다음 참조 추가에서 "찾아보기"옵션을 사용하여 프로젝트를 참조 할 수 있습니다.

동료들은 소스 제어에서이 DLL을 놓치지 않기 때문에 기뻐할 것입니다.

참조 URL : https://stackoverflow.com/questions/18104151/how-to-reference-microsoft-web-administration

반응형