How to reference Microsoft.Web.Administration?
.net, iis
Solution
The following steps are working for me:
- Go to `C:\Windows\System32\inetsrv` and check if the file `Microsoft.Web.Administration.dll` exists. If you are missing the `Microsoft.Web.Administration.dll` in `C:\Windows\System32\inetsrv`, enable IIS Management Console in your Windows Features:
- In your Visual Studio project, add the reference to the `Microsoft.Web.Administration.dll`:
- Now your .proj-file has the following the entry: `<HintPath>C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>`. You could adapt this path to e.g. `<HintPath>%windir%\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>` to make it more robust.
When you move the app to a different system, the app also references to the `Microsoft.Web.Administration.dll` on the target system. Because the `Microsoft.Web.Administration.dll` could be different between the windows systems it is not recommended to deliver a copy of this assembly file by the app. A copy could be incompatible with the IIS on the target system.
It is also not recommended to reference a copy of the assembly on the same system, because perhaps the `Microsoft.Web.Administrator.dll` and the IIS will change due an Windows Update! Then your referenced copy of `Microsoft.Web.Administrator.dll` is incompatible with the updated IIS.
When the Microsoft.Web.Administrator.dll is missing on the target system, then activate the Management Console as descibed in step 1 above. Alternatively you can use the cmd (open as Administrator) and activate the Windows Feature Management Console by `DISM.exe` via the following command:
C:\Windows\System32\Dism.exe /enable-feature /online /featurename:IIS-ManagementConsole
This command could be useful when you want to distribute your app via an setup.
Problem
The Microsoft.Web.Administration assembly is found in `C:\Windows\System32\inetsrv` on my machine. I believe it is installed as part of IIS. The assembly is also in the GAC. How should I reference this assembly from my project, given that I want to commit the project to SVN for others to checkout. `Microsoft.Web.Administration` does not appear in the Visual Studio 'Add References' list. I can add a reference to `C:\Windows\System32\inetsrv\Microsoft.Web.Administration`, but this seems like a bad idea as other developers might have it installed on a different path or drive. Or I could copy it into the project folder, but then I have to commit the binary to SVN.