Подтвердить что ты не робот

Как обратиться к Microsoft.Web.Administration?

Узел Microsoft.Web.Administration находится в C:\Windows\System32\inetsrv на моей машине. Я считаю, что он установлен как часть IIS. Сборка также находится в GAC.

Как я должен ссылаться на эту сборку из моего проекта, учитывая, что я хочу передать проект SVN, чтобы другие могли проверить. Microsoft.Web.Administration не отображается в списке "Добавить ссылки" в Visual Studio. Я могу добавить ссылку на C:\Windows\System32\inetsrv\Microsoft.Web.Administration, но это похоже на плохую идею, поскольку другие разработчики могут установить ее на другом пути или диске.

Или я мог бы скопировать его в папку проекта, но потом мне нужно передать двоичный файл в SVN.

4b9b3361

Ответ 1

Для меня работают следующие шаги:

  • Скопируйте Microsoft.Web.Administration.dll в C:\Windows\System32\inetsrv
  • В папке, где находится ваш *.csproj, добавьте папку /lib и вставьте Microsoft.Web.Administration.dll в папку /lib
  • Теперь добавьте относительный путь к .dll в *.csproj: откройте *.csproj, найдите тег <ItemGroup> и добавьте следующее определение xml:

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

Наконец, добавьте /lib в ваше SVN-репо. Это работает для меня на каждой машине после проверки SVN.

Если вам не хватает Microsoft.Web.Administration.dll в C:\Windows\System32\inetsrv, включите консоль управления IIS в своих функциях Windows:

Adding the management service to windows features

Ответ 2

Вы можете изменить файл проекта вручную. Добавление/изменение ссылки, как показано ниже, найдет сборку в 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

Ответ 3

Найдите его в NuGet и установите его. Он будет установлен в папке пакетов, изменит местоположение в соответствии с вашей структурой проекта и снова добавит ссылки для отражения нового пути. Обычно я создаю папку lib и размещаю все внешние библиотеки.

Структура папки проекта может быть

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

Microsoft.Web.Administration используется для управления программным обеспечением IIS, и он недоступен из дополнительного окна ссылок. Добавив ссылку из C:\Windows\System32\inetsrv, вы создадите ссылочные проблемы. Итак, лучше иметь его в папке lib внутри проекта и проверить его в SVN.

Ответ 4

  • Если вы создадите файл проекта, измените путь подсказки на <HintPath>%windir%\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>.
  • Заезд. Тогда любой, кто проверяет, должен увидеть правильную ссылку, если IIS установлен. Если IIS не установлен, будет устранена эталонная ошибка.

Чтобы решить проблему, они либо устанавливают IIS через программы на панели управления, либо через командную строку, как отметил @DzmitryLahoda.

Опять же, любой трюк, указывающий вам на пакеты NuGet, является неправильным,

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

Ответ 5

Используйте Nuget:

Microsoft.Web.Administration

введите описание изображения здесь

Ответ 6

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

Ответ 7

Постарайтесь, чтобы эти сборки были установлены с помощью события предварительной сборки:

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

В установленном целом IIS со всеми функциями, таким образом, используется FeatureName для оценки. Попробуйте перечислить все возможности для альтернативы:

dism /online /Get-Features

DISM доступен для Windows раньше, чем 8: 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

Ответ 8

Самый простой способ сделать это - установить NuGet в Visual Studio по этой ссылке. http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c

Затем в Visual Studio откройте "Диспетчер пакетов" Tools- > NuGet- > Консоль диспетчера пакетов

Затем выберите проект по умолчанию для проекта, для которого вы хотите установить.

Наконец, запустите команду Установить пакет Microsoft.Web.Administration.

Ответ 9

Немного дополнительной информации, а не прямого ответа. IIS и IIS Express используют две разные версии одной и той же DLL, поэтому ваше приложение может случайно ошибиться. См. http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/

Ответ 10

Добавьте новый проект в свое решение под названием "ссылочные сборки" и добавьте DLL в этот проект - таким образом, DLL будет находиться в исходном элементе управления. Затем вы можете ссылаться на проект, используя опцию "Обзор" в дополнительной ссылке.

Ваши коллеги будут рады, потому что вы не пропустите эту DLL, поскольку она находится в контроле источника.