如何引用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 ,但是这似乎是一个坏主意,因为其他开发人员可能已经安装在不同的path或驱动器上。

或者我可以将它复制到项目文件夹中,但是我必须将二进制文件提交到SVN。

以下步骤正在为我工​​作:

  1. 复制位于C:\Windows\System32\inetsrvMicrosoft.Web.Administration.dll
  2. 在您的*.csproj所在的文件夹中,添加文件夹/lib并将Microsoft.Web.Administration.dll粘贴到/lib文件夹中
  3. 现在,将相对path添加到*.csproj的.dll:Open *.csproj ,search标记<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结帐后的每台机器都适用。

如果您缺lessC:\Windows\System32\inetsrvMicrosoft.Web.Administration.dll ,请在Windowsfunction中启用IISpipe理控制台:

将管理服务添加到Windows功能

您可以手动修改您的项目文件。 如下所示添加/更改参考将在GAC中查找组件,无论其位置如何:

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

当然,如果仅安装“IISpipe理控制台”function。 您可以简单地在代码中留下提示:

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

在NuGet中search并安装它。 它将被安装到包文件夹中,根据您的项目结构更改位置并重新添加引用以反映新path。 通常我创build一个lib文件夹并放置所有的外部库。

该项目的文件夹结构可以

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

Microsoft.Web.Administration用于以编程方式pipe理IIS,并且不能从添加引用窗口获得。 通过从C:\ Windows \ System32 \ inetsrv添加引用会创build引用问题。 所以,最好将它放在项目内部的lib文件夹中,并在SVN中检查。

  1. 如果您投影文件,请将提示path更改为<HintPath>%windir%\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>
  2. 检入。然后,如果安装了IIS,那么签出的任何人都应该看到正确的引用。 如果没有安装IIS,将会有一个引用错误,他们需要解决。

要解决这个问题,他们要么通过控制面板中的程序来安装IIS,要么通过@DzmitryLahoda指出的命令行。

再一次,任何指向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

尝试确保通过预build事件安装这些程序集:

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

在这种方式安装具有所有function的整个IIS,所以使用的FeatureName是猜测组件。 尝试旁边列出替代的所有function:

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. 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

使用Nuget

Microsoft.Web.Administration

在这里输入图像说明

最简单的方法是从此链接在Visual Studio中安装NuGet。 http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c

然后,在Visual Studio中,转至工具 – > NuGet程序包pipe理器 – >程序包pipe理器控制台

然后,select“默认项目”作为要安装的项目。

最后,运行安装程序包Microsoft.Web.Administration命令。

一些额外的信息,而不是一个直接的答案。 IIS和IIS Express使用相同的DLL的两个不同版本,所以你的应用程序可能会意外地得到错误的。 请参阅http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/

将新项目添加到您的解决scheme称为“引用程序集”,并将该DLL添加到此项目 – 这种方式DLL将在源代码pipe理。 然后,您可以使用添加参考中的“浏览”选项来引用该项目。

你的同事会很高兴,因为他们不会错过这个DLL,因为它是在源代码控制。