How to reference Microsoft.Web.Administration?












51















The Microsoft.Web.Administration assembly is found in C:WindowsSystem32inetsrv 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:WindowsSystem32inetsrvMicrosoft.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.










share|improve this question




















  • 3





    Add dll to svn that others could check out it and use in project. Also you should think about to add it to setup.

    – Reniuz
    Aug 7 '13 at 13:08






  • 1





    I'd just stick with the GAC reference.

    – tnw
    Aug 7 '13 at 13:08






  • 1





    @tnw then you need to turn on IIS feature.

    – Reniuz
    Aug 7 '13 at 13:09






  • 5





    @Reniuz There are potential legal issues there. All developers should have the required setup, so that the relevant DLLs are in the GAC (i.e. their development machines are configured for development of their thing!) When it comes to clients, a different, generally more legal approach, would be to bootstrap the thing that configures the machine with the required DLLs, instead of "kidnapping" the DLLs.

    – Grant Thomas
    Aug 7 '13 at 13:10








  • 2





    @GrantThomas what you saying is true. But install IIS because of dll... need to find out more about this thing. Recently i had to use this dll just because I could add site binding programatically for webservice with certificate to work. I would be gratefull for any references about "kidnapping" dlls. :)

    – Reniuz
    Aug 7 '13 at 13:19
















51















The Microsoft.Web.Administration assembly is found in C:WindowsSystem32inetsrv 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:WindowsSystem32inetsrvMicrosoft.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.










share|improve this question




















  • 3





    Add dll to svn that others could check out it and use in project. Also you should think about to add it to setup.

    – Reniuz
    Aug 7 '13 at 13:08






  • 1





    I'd just stick with the GAC reference.

    – tnw
    Aug 7 '13 at 13:08






  • 1





    @tnw then you need to turn on IIS feature.

    – Reniuz
    Aug 7 '13 at 13:09






  • 5





    @Reniuz There are potential legal issues there. All developers should have the required setup, so that the relevant DLLs are in the GAC (i.e. their development machines are configured for development of their thing!) When it comes to clients, a different, generally more legal approach, would be to bootstrap the thing that configures the machine with the required DLLs, instead of "kidnapping" the DLLs.

    – Grant Thomas
    Aug 7 '13 at 13:10








  • 2





    @GrantThomas what you saying is true. But install IIS because of dll... need to find out more about this thing. Recently i had to use this dll just because I could add site binding programatically for webservice with certificate to work. I would be gratefull for any references about "kidnapping" dlls. :)

    – Reniuz
    Aug 7 '13 at 13:19














51












51








51


7






The Microsoft.Web.Administration assembly is found in C:WindowsSystem32inetsrv 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:WindowsSystem32inetsrvMicrosoft.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.










share|improve this question
















The Microsoft.Web.Administration assembly is found in C:WindowsSystem32inetsrv 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:WindowsSystem32inetsrvMicrosoft.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.







.net iis






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Sep 12 '14 at 12:38









Stijn

16.4k1082126




16.4k1082126










asked Aug 7 '13 at 13:04









Weyland YutaniWeyland Yutani

2,78911420




2,78911420








  • 3





    Add dll to svn that others could check out it and use in project. Also you should think about to add it to setup.

    – Reniuz
    Aug 7 '13 at 13:08






  • 1





    I'd just stick with the GAC reference.

    – tnw
    Aug 7 '13 at 13:08






  • 1





    @tnw then you need to turn on IIS feature.

    – Reniuz
    Aug 7 '13 at 13:09






  • 5





    @Reniuz There are potential legal issues there. All developers should have the required setup, so that the relevant DLLs are in the GAC (i.e. their development machines are configured for development of their thing!) When it comes to clients, a different, generally more legal approach, would be to bootstrap the thing that configures the machine with the required DLLs, instead of "kidnapping" the DLLs.

    – Grant Thomas
    Aug 7 '13 at 13:10








  • 2





    @GrantThomas what you saying is true. But install IIS because of dll... need to find out more about this thing. Recently i had to use this dll just because I could add site binding programatically for webservice with certificate to work. I would be gratefull for any references about "kidnapping" dlls. :)

    – Reniuz
    Aug 7 '13 at 13:19














  • 3





    Add dll to svn that others could check out it and use in project. Also you should think about to add it to setup.

    – Reniuz
    Aug 7 '13 at 13:08






  • 1





    I'd just stick with the GAC reference.

    – tnw
    Aug 7 '13 at 13:08






  • 1





    @tnw then you need to turn on IIS feature.

    – Reniuz
    Aug 7 '13 at 13:09






  • 5





    @Reniuz There are potential legal issues there. All developers should have the required setup, so that the relevant DLLs are in the GAC (i.e. their development machines are configured for development of their thing!) When it comes to clients, a different, generally more legal approach, would be to bootstrap the thing that configures the machine with the required DLLs, instead of "kidnapping" the DLLs.

    – Grant Thomas
    Aug 7 '13 at 13:10








  • 2





    @GrantThomas what you saying is true. But install IIS because of dll... need to find out more about this thing. Recently i had to use this dll just because I could add site binding programatically for webservice with certificate to work. I would be gratefull for any references about "kidnapping" dlls. :)

    – Reniuz
    Aug 7 '13 at 13:19








3




3





Add dll to svn that others could check out it and use in project. Also you should think about to add it to setup.

– Reniuz
Aug 7 '13 at 13:08





Add dll to svn that others could check out it and use in project. Also you should think about to add it to setup.

– Reniuz
Aug 7 '13 at 13:08




1




1





I'd just stick with the GAC reference.

– tnw
Aug 7 '13 at 13:08





I'd just stick with the GAC reference.

– tnw
Aug 7 '13 at 13:08




1




1





@tnw then you need to turn on IIS feature.

– Reniuz
Aug 7 '13 at 13:09





@tnw then you need to turn on IIS feature.

– Reniuz
Aug 7 '13 at 13:09




5




5





@Reniuz There are potential legal issues there. All developers should have the required setup, so that the relevant DLLs are in the GAC (i.e. their development machines are configured for development of their thing!) When it comes to clients, a different, generally more legal approach, would be to bootstrap the thing that configures the machine with the required DLLs, instead of "kidnapping" the DLLs.

– Grant Thomas
Aug 7 '13 at 13:10







@Reniuz There are potential legal issues there. All developers should have the required setup, so that the relevant DLLs are in the GAC (i.e. their development machines are configured for development of their thing!) When it comes to clients, a different, generally more legal approach, would be to bootstrap the thing that configures the machine with the required DLLs, instead of "kidnapping" the DLLs.

– Grant Thomas
Aug 7 '13 at 13:10






2




2





@GrantThomas what you saying is true. But install IIS because of dll... need to find out more about this thing. Recently i had to use this dll just because I could add site binding programatically for webservice with certificate to work. I would be gratefull for any references about "kidnapping" dlls. :)

– Reniuz
Aug 7 '13 at 13:19





@GrantThomas what you saying is true. But install IIS because of dll... need to find out more about this thing. Recently i had to use this dll just because I could add site binding programatically for webservice with certificate to work. I would be gratefull for any references about "kidnapping" dlls. :)

– Reniuz
Aug 7 '13 at 13:19












10 Answers
10






active

oldest

votes


















38














The following steps are working for me:




  1. Go to C:WindowsSystem32inetsrv and check if the file Microsoft.Web.Administration.dll exists. If you are missing the Microsoft.Web.Administration.dll in C:WindowsSystem32inetsrv, enable IIS Management Console in your Windows Features:


Adding the management service to windows features




  1. In your Visual Studio project, add the reference to the Microsoft.Web.Administration.dll:
    enter image description here

  2. Now your .proj-file has the following the entry: <HintPath>C:WindowsSystem32inetsrvMicrosoft.Web.Administration.dll</HintPath>. You could adapt this path to e.g. <HintPath>%windir%System32inetsrvMicrosoft.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:WindowsSystem32Dism.exe /enable-feature /online /featurename:IIS-ManagementConsole


This command could be useful when you want to distribute your app via an setup.






share|improve this answer


























  • This is not the recommended approach, so once you move to another Windows machine with a different IIS version, there can be an assembly mismatch. You should simply leave the hint path in the project file, so that Visual Studio or MSBuild resolves the assembly from IIS installation folder.

    – Lex Li
    Nov 19 '18 at 22:22











  • @Lex Li: I totally agree. I have adapted my answer. Thank you for your contribution.

    – Simon
    Nov 20 '18 at 10:05





















10














You may modify your project file manually. Adding/Changing the reference like below will find the assembly in GAC regardless of its location:



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


Of course, if the feature "IIS management console" is installed only. You may simply leave a hint in code:



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





share|improve this answer



















  • 2





    While this may not be the answer for everyone, this was exactly what I needed. People need to be aware that there are two versions of this assembly, one for IIS and one for IIS Express. The one available through NuGet is for IIS, so if you actually want the IIS Express version then that won't work. If you do, adding it through NuGet is probably the more advisable avenue.

    – Derek Greer
    Jun 9 '14 at 16:36











  • @DerekGreer, NuGet packages are also a wrong approach, blog.lextudio.com/2015/05/…

    – Lex Li
    May 30 '15 at 3:51











  • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42











  • @TLS they made the change for the new REST API based on .NET Core. Not a sign for you to use the NuGet package still.

    – Lex Li
    Oct 31 '16 at 23:45



















6














Search for it in NuGet and install it. It will get installed in packages folder, change the location according to your project structure and re-add the references to reflect new path. Generally I create a lib folder and place all the external libraries.



Folder structure of the project can be



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


Microsoft.Web.Administration is used to manage IIS programmatically and it is not available from add reference window. By adding reference from C:WindowsSystem32inetsrv would create reference issues. So, better to have it in lib folder internal to the project and check it in SVN.






share|improve this answer


























  • +1 I'm glad that assembly was added to NuGet... now if only they would add "Microsoft.Web.Management" also (ah heck why not all of the obscure dlls?)

    – dyslexicanaboko
    Jan 13 '14 at 19:30






  • 2





    @dyslexicanaboko, Packaging via NuGet is wrong, blog.lextudio.com/2015/05/…

    – Lex Li
    May 30 '15 at 3:53











  • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42











  • @TLS I will update the blog post once I get confirmation from Microsoft.

    – Lex Li
    Oct 31 '16 at 23:46



















6















  1. If you project file, change the hint path to <HintPath>%windir%System32inetsrvMicrosoft.Web.Administration.dll</HintPath>.

  2. Check in.
    Then anyone who checks out should see the proper reference if IIS is installed. If IIS is not installed, there will be a reference error they need to resolve.


To resolve, they either install IIS via Programs in Control Panel or via command line as @DzmitryLahoda pointed out.



Again, any trick pointing you to the NuGet packages is improper,



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






share|improve this answer
























  • This is correct. If you use the NuGet package then you are redistributing the assembly without permission from Microsoft (assuming you package it up into your deployment).

    – Bringer128
    Jun 21 '15 at 23:46








  • 3





    @Bringer128 Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42











  • @TLS Microsoft hosts a .NET Core compatible package there for its IIS 10 REST API, but that is still not targeting other scenarios.

    – Lex Li
    Nov 19 '18 at 22:23



















2














Use Nuget:



Microsoft.Web.Administration



enter image description here






share|improve this answer



















  • 1





    What is wrong with this obvious solution that it has -1 votes? Anyone care to elaborate?

    – Florian Winter
    Feb 9 '17 at 12:17






  • 1





    The Microsoft.Web.Administration package is known to be horribly implemented and more likely to cause harm than good.

    – Kristian Williams
    Apr 19 '18 at 12:54











  • The blogpost by Lex Li in his answer tells why one never wants to use the package. TL;DR: MWA is just a wrapper around IIS COM interfaces and is subject to change with each version of IIS. The NuGet package is designed for internal use in IIS.Administration.

    – Palec
    Dec 16 '18 at 7:52





















1














C:WindowsSystem32inetsrv



or



C:Windowswinsxsx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.1.7600.16385_none_c8472944f22a9c81



C:WindowsWinSxSx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.3.9600.16384_none_5d1097a8ac709c4e






share|improve this answer
























  • Not everyone installs Windows to C drive.

    – Lex Li
    May 30 '15 at 3:50



















1














Try to ensure these assemblies are installed via prebuild event:




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



In installed whole IIS with all features this way, so used FeatureName is guesstimate for assemblies. Try next to list all features for alternative:




dism /online /Get-Features



DISM is available for Windows earlier then 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.



Also can try for Windows 7 and below:

start /w pkgmgr /iu:IIS-WebServerManagementTools






share|improve this answer





















  • 1





    Unfortunately this only applies to Windows 8 and above, technet.microsoft.com/en-us/library/hh825236.aspx For IIS 7 and 7.5, users need to use legacy ways.

    – Lex Li
    May 30 '15 at 3:49



















1














A bit of extra info, not a direct answer. IIS and IIS Express use two different versions of the same DLL, so your app might accidentally get the wrong one. See http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/






share|improve this answer































    0














    The simplest way to do this is install NuGet in Visual Studio from this link.
    http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c



    Then, in Visual Studio, go to Tools->NuGet Package Manager-> Package Manager Console



    Then, select Default Project to be the project that you want to install to.



    Finally, Run Install-Package Microsoft.Web.Administration command.






    share|improve this answer
























    • I downvoted because this answer is the same as the currently top-voted one, which is posted 3 months earlier. The only thing this adds is a "guide" on installing NuGet, which imho is unrelated to the question.

      – Stijn
      Sep 18 '14 at 13:31











    • I was new to this and top voted question didn't help me out understanding how to follow the entire process. I did end up spending some time with it, so i thought i should post it and help someone else. But I don't mind down vote, i will keep it in mind. :) Thanks

      – thestar
      Sep 19 '14 at 0:03






    • 1





      The NuGet package is not from Microsoft, and goes against the official guide, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:39






    • 1





      Lex Li.. Thank you for the comment, but where did i say NuGet Package is from Microsoft?

      – thestar
      May 31 '15 at 14:05






    • 1





      @thestar More importantly, the NuGet package has no licensing info, and the assembly is made by Microsoft while the NuGet package isn't. Legally you have no right to redistribute that assembly until Microsoft releases license information for that assembly.

      – Bringer128
      Jun 21 '15 at 23:45



















    -4














    Add new project to your solution called "referenced assemblies" and add the DLL to this project - this way the DLL will be in the source control. You can then reference the project using the "Browse" option in add reference.



    Your colleagues will be happy because you they will not miss this DLL as it is in source control.






    share|improve this answer



















    • 1





      SVN doesn't care if it's in the solution or not.

      – Liam
      Aug 7 '13 at 13:13











    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f18104151%2fhow-to-reference-microsoft-web-administration%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    10 Answers
    10






    active

    oldest

    votes








    10 Answers
    10






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    38














    The following steps are working for me:




    1. Go to C:WindowsSystem32inetsrv and check if the file Microsoft.Web.Administration.dll exists. If you are missing the Microsoft.Web.Administration.dll in C:WindowsSystem32inetsrv, enable IIS Management Console in your Windows Features:


    Adding the management service to windows features




    1. In your Visual Studio project, add the reference to the Microsoft.Web.Administration.dll:
      enter image description here

    2. Now your .proj-file has the following the entry: <HintPath>C:WindowsSystem32inetsrvMicrosoft.Web.Administration.dll</HintPath>. You could adapt this path to e.g. <HintPath>%windir%System32inetsrvMicrosoft.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:WindowsSystem32Dism.exe /enable-feature /online /featurename:IIS-ManagementConsole


    This command could be useful when you want to distribute your app via an setup.






    share|improve this answer


























    • This is not the recommended approach, so once you move to another Windows machine with a different IIS version, there can be an assembly mismatch. You should simply leave the hint path in the project file, so that Visual Studio or MSBuild resolves the assembly from IIS installation folder.

      – Lex Li
      Nov 19 '18 at 22:22











    • @Lex Li: I totally agree. I have adapted my answer. Thank you for your contribution.

      – Simon
      Nov 20 '18 at 10:05


















    38














    The following steps are working for me:




    1. Go to C:WindowsSystem32inetsrv and check if the file Microsoft.Web.Administration.dll exists. If you are missing the Microsoft.Web.Administration.dll in C:WindowsSystem32inetsrv, enable IIS Management Console in your Windows Features:


    Adding the management service to windows features




    1. In your Visual Studio project, add the reference to the Microsoft.Web.Administration.dll:
      enter image description here

    2. Now your .proj-file has the following the entry: <HintPath>C:WindowsSystem32inetsrvMicrosoft.Web.Administration.dll</HintPath>. You could adapt this path to e.g. <HintPath>%windir%System32inetsrvMicrosoft.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:WindowsSystem32Dism.exe /enable-feature /online /featurename:IIS-ManagementConsole


    This command could be useful when you want to distribute your app via an setup.






    share|improve this answer


























    • This is not the recommended approach, so once you move to another Windows machine with a different IIS version, there can be an assembly mismatch. You should simply leave the hint path in the project file, so that Visual Studio or MSBuild resolves the assembly from IIS installation folder.

      – Lex Li
      Nov 19 '18 at 22:22











    • @Lex Li: I totally agree. I have adapted my answer. Thank you for your contribution.

      – Simon
      Nov 20 '18 at 10:05
















    38












    38








    38







    The following steps are working for me:




    1. Go to C:WindowsSystem32inetsrv and check if the file Microsoft.Web.Administration.dll exists. If you are missing the Microsoft.Web.Administration.dll in C:WindowsSystem32inetsrv, enable IIS Management Console in your Windows Features:


    Adding the management service to windows features




    1. In your Visual Studio project, add the reference to the Microsoft.Web.Administration.dll:
      enter image description here

    2. Now your .proj-file has the following the entry: <HintPath>C:WindowsSystem32inetsrvMicrosoft.Web.Administration.dll</HintPath>. You could adapt this path to e.g. <HintPath>%windir%System32inetsrvMicrosoft.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:WindowsSystem32Dism.exe /enable-feature /online /featurename:IIS-ManagementConsole


    This command could be useful when you want to distribute your app via an setup.






    share|improve this answer















    The following steps are working for me:




    1. Go to C:WindowsSystem32inetsrv and check if the file Microsoft.Web.Administration.dll exists. If you are missing the Microsoft.Web.Administration.dll in C:WindowsSystem32inetsrv, enable IIS Management Console in your Windows Features:


    Adding the management service to windows features




    1. In your Visual Studio project, add the reference to the Microsoft.Web.Administration.dll:
      enter image description here

    2. Now your .proj-file has the following the entry: <HintPath>C:WindowsSystem32inetsrvMicrosoft.Web.Administration.dll</HintPath>. You could adapt this path to e.g. <HintPath>%windir%System32inetsrvMicrosoft.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:WindowsSystem32Dism.exe /enable-feature /online /featurename:IIS-ManagementConsole


    This command could be useful when you want to distribute your app via an setup.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 20 '18 at 10:37

























    answered Apr 24 '14 at 8:36









    SimonSimon

    1,5461840




    1,5461840













    • This is not the recommended approach, so once you move to another Windows machine with a different IIS version, there can be an assembly mismatch. You should simply leave the hint path in the project file, so that Visual Studio or MSBuild resolves the assembly from IIS installation folder.

      – Lex Li
      Nov 19 '18 at 22:22











    • @Lex Li: I totally agree. I have adapted my answer. Thank you for your contribution.

      – Simon
      Nov 20 '18 at 10:05





















    • This is not the recommended approach, so once you move to another Windows machine with a different IIS version, there can be an assembly mismatch. You should simply leave the hint path in the project file, so that Visual Studio or MSBuild resolves the assembly from IIS installation folder.

      – Lex Li
      Nov 19 '18 at 22:22











    • @Lex Li: I totally agree. I have adapted my answer. Thank you for your contribution.

      – Simon
      Nov 20 '18 at 10:05



















    This is not the recommended approach, so once you move to another Windows machine with a different IIS version, there can be an assembly mismatch. You should simply leave the hint path in the project file, so that Visual Studio or MSBuild resolves the assembly from IIS installation folder.

    – Lex Li
    Nov 19 '18 at 22:22





    This is not the recommended approach, so once you move to another Windows machine with a different IIS version, there can be an assembly mismatch. You should simply leave the hint path in the project file, so that Visual Studio or MSBuild resolves the assembly from IIS installation folder.

    – Lex Li
    Nov 19 '18 at 22:22













    @Lex Li: I totally agree. I have adapted my answer. Thank you for your contribution.

    – Simon
    Nov 20 '18 at 10:05







    @Lex Li: I totally agree. I have adapted my answer. Thank you for your contribution.

    – Simon
    Nov 20 '18 at 10:05















    10














    You may modify your project file manually. Adding/Changing the reference like below will find the assembly in GAC regardless of its location:



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


    Of course, if the feature "IIS management console" is installed only. You may simply leave a hint in code:



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





    share|improve this answer



















    • 2





      While this may not be the answer for everyone, this was exactly what I needed. People need to be aware that there are two versions of this assembly, one for IIS and one for IIS Express. The one available through NuGet is for IIS, so if you actually want the IIS Express version then that won't work. If you do, adding it through NuGet is probably the more advisable avenue.

      – Derek Greer
      Jun 9 '14 at 16:36











    • @DerekGreer, NuGet packages are also a wrong approach, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:51











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS they made the change for the new REST API based on .NET Core. Not a sign for you to use the NuGet package still.

      – Lex Li
      Oct 31 '16 at 23:45
















    10














    You may modify your project file manually. Adding/Changing the reference like below will find the assembly in GAC regardless of its location:



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


    Of course, if the feature "IIS management console" is installed only. You may simply leave a hint in code:



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





    share|improve this answer



















    • 2





      While this may not be the answer for everyone, this was exactly what I needed. People need to be aware that there are two versions of this assembly, one for IIS and one for IIS Express. The one available through NuGet is for IIS, so if you actually want the IIS Express version then that won't work. If you do, adding it through NuGet is probably the more advisable avenue.

      – Derek Greer
      Jun 9 '14 at 16:36











    • @DerekGreer, NuGet packages are also a wrong approach, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:51











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS they made the change for the new REST API based on .NET Core. Not a sign for you to use the NuGet package still.

      – Lex Li
      Oct 31 '16 at 23:45














    10












    10








    10







    You may modify your project file manually. Adding/Changing the reference like below will find the assembly in GAC regardless of its location:



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


    Of course, if the feature "IIS management console" is installed only. You may simply leave a hint in code:



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





    share|improve this answer













    You may modify your project file manually. Adding/Changing the reference like below will find the assembly in GAC regardless of its location:



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


    Of course, if the feature "IIS management console" is installed only. You may simply leave a hint in code:



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






    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Apr 3 '14 at 16:08









    deve loperdeve loper

    10112




    10112








    • 2





      While this may not be the answer for everyone, this was exactly what I needed. People need to be aware that there are two versions of this assembly, one for IIS and one for IIS Express. The one available through NuGet is for IIS, so if you actually want the IIS Express version then that won't work. If you do, adding it through NuGet is probably the more advisable avenue.

      – Derek Greer
      Jun 9 '14 at 16:36











    • @DerekGreer, NuGet packages are also a wrong approach, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:51











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS they made the change for the new REST API based on .NET Core. Not a sign for you to use the NuGet package still.

      – Lex Li
      Oct 31 '16 at 23:45














    • 2





      While this may not be the answer for everyone, this was exactly what I needed. People need to be aware that there are two versions of this assembly, one for IIS and one for IIS Express. The one available through NuGet is for IIS, so if you actually want the IIS Express version then that won't work. If you do, adding it through NuGet is probably the more advisable avenue.

      – Derek Greer
      Jun 9 '14 at 16:36











    • @DerekGreer, NuGet packages are also a wrong approach, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:51











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS they made the change for the new REST API based on .NET Core. Not a sign for you to use the NuGet package still.

      – Lex Li
      Oct 31 '16 at 23:45








    2




    2





    While this may not be the answer for everyone, this was exactly what I needed. People need to be aware that there are two versions of this assembly, one for IIS and one for IIS Express. The one available through NuGet is for IIS, so if you actually want the IIS Express version then that won't work. If you do, adding it through NuGet is probably the more advisable avenue.

    – Derek Greer
    Jun 9 '14 at 16:36





    While this may not be the answer for everyone, this was exactly what I needed. People need to be aware that there are two versions of this assembly, one for IIS and one for IIS Express. The one available through NuGet is for IIS, so if you actually want the IIS Express version then that won't work. If you do, adding it through NuGet is probably the more advisable avenue.

    – Derek Greer
    Jun 9 '14 at 16:36













    @DerekGreer, NuGet packages are also a wrong approach, blog.lextudio.com/2015/05/…

    – Lex Li
    May 30 '15 at 3:51





    @DerekGreer, NuGet packages are also a wrong approach, blog.lextudio.com/2015/05/…

    – Lex Li
    May 30 '15 at 3:51













    @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42





    @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42













    @TLS they made the change for the new REST API based on .NET Core. Not a sign for you to use the NuGet package still.

    – Lex Li
    Oct 31 '16 at 23:45





    @TLS they made the change for the new REST API based on .NET Core. Not a sign for you to use the NuGet package still.

    – Lex Li
    Oct 31 '16 at 23:45











    6














    Search for it in NuGet and install it. It will get installed in packages folder, change the location according to your project structure and re-add the references to reflect new path. Generally I create a lib folder and place all the external libraries.



    Folder structure of the project can be



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


    Microsoft.Web.Administration is used to manage IIS programmatically and it is not available from add reference window. By adding reference from C:WindowsSystem32inetsrv would create reference issues. So, better to have it in lib folder internal to the project and check it in SVN.






    share|improve this answer


























    • +1 I'm glad that assembly was added to NuGet... now if only they would add "Microsoft.Web.Management" also (ah heck why not all of the obscure dlls?)

      – dyslexicanaboko
      Jan 13 '14 at 19:30






    • 2





      @dyslexicanaboko, Packaging via NuGet is wrong, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:53











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS I will update the blog post once I get confirmation from Microsoft.

      – Lex Li
      Oct 31 '16 at 23:46
















    6














    Search for it in NuGet and install it. It will get installed in packages folder, change the location according to your project structure and re-add the references to reflect new path. Generally I create a lib folder and place all the external libraries.



    Folder structure of the project can be



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


    Microsoft.Web.Administration is used to manage IIS programmatically and it is not available from add reference window. By adding reference from C:WindowsSystem32inetsrv would create reference issues. So, better to have it in lib folder internal to the project and check it in SVN.






    share|improve this answer


























    • +1 I'm glad that assembly was added to NuGet... now if only they would add "Microsoft.Web.Management" also (ah heck why not all of the obscure dlls?)

      – dyslexicanaboko
      Jan 13 '14 at 19:30






    • 2





      @dyslexicanaboko, Packaging via NuGet is wrong, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:53











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS I will update the blog post once I get confirmation from Microsoft.

      – Lex Li
      Oct 31 '16 at 23:46














    6












    6








    6







    Search for it in NuGet and install it. It will get installed in packages folder, change the location according to your project structure and re-add the references to reflect new path. Generally I create a lib folder and place all the external libraries.



    Folder structure of the project can be



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


    Microsoft.Web.Administration is used to manage IIS programmatically and it is not available from add reference window. By adding reference from C:WindowsSystem32inetsrv would create reference issues. So, better to have it in lib folder internal to the project and check it in SVN.






    share|improve this answer















    Search for it in NuGet and install it. It will get installed in packages folder, change the location according to your project structure and re-add the references to reflect new path. Generally I create a lib folder and place all the external libraries.



    Folder structure of the project can be



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


    Microsoft.Web.Administration is used to manage IIS programmatically and it is not available from add reference window. By adding reference from C:WindowsSystem32inetsrv would create reference issues. So, better to have it in lib folder internal to the project and check it in SVN.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Aug 7 '13 at 14:06

























    answered Aug 7 '13 at 13:11









    SunnySunny

    3,40932159




    3,40932159













    • +1 I'm glad that assembly was added to NuGet... now if only they would add "Microsoft.Web.Management" also (ah heck why not all of the obscure dlls?)

      – dyslexicanaboko
      Jan 13 '14 at 19:30






    • 2





      @dyslexicanaboko, Packaging via NuGet is wrong, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:53











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS I will update the blog post once I get confirmation from Microsoft.

      – Lex Li
      Oct 31 '16 at 23:46



















    • +1 I'm glad that assembly was added to NuGet... now if only they would add "Microsoft.Web.Management" also (ah heck why not all of the obscure dlls?)

      – dyslexicanaboko
      Jan 13 '14 at 19:30






    • 2





      @dyslexicanaboko, Packaging via NuGet is wrong, blog.lextudio.com/2015/05/…

      – Lex Li
      May 30 '15 at 3:53











    • @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS I will update the blog post once I get confirmation from Microsoft.

      – Lex Li
      Oct 31 '16 at 23:46

















    +1 I'm glad that assembly was added to NuGet... now if only they would add "Microsoft.Web.Management" also (ah heck why not all of the obscure dlls?)

    – dyslexicanaboko
    Jan 13 '14 at 19:30





    +1 I'm glad that assembly was added to NuGet... now if only they would add "Microsoft.Web.Management" also (ah heck why not all of the obscure dlls?)

    – dyslexicanaboko
    Jan 13 '14 at 19:30




    2




    2





    @dyslexicanaboko, Packaging via NuGet is wrong, blog.lextudio.com/2015/05/…

    – Lex Li
    May 30 '15 at 3:53





    @dyslexicanaboko, Packaging via NuGet is wrong, blog.lextudio.com/2015/05/…

    – Lex Li
    May 30 '15 at 3:53













    @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42





    @LexLi Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42













    @TLS I will update the blog post once I get confirmation from Microsoft.

    – Lex Li
    Oct 31 '16 at 23:46





    @TLS I will update the blog post once I get confirmation from Microsoft.

    – Lex Li
    Oct 31 '16 at 23:46











    6















    1. If you project file, change the hint path to <HintPath>%windir%System32inetsrvMicrosoft.Web.Administration.dll</HintPath>.

    2. Check in.
      Then anyone who checks out should see the proper reference if IIS is installed. If IIS is not installed, there will be a reference error they need to resolve.


    To resolve, they either install IIS via Programs in Control Panel or via command line as @DzmitryLahoda pointed out.



    Again, any trick pointing you to the NuGet packages is improper,



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






    share|improve this answer
























    • This is correct. If you use the NuGet package then you are redistributing the assembly without permission from Microsoft (assuming you package it up into your deployment).

      – Bringer128
      Jun 21 '15 at 23:46








    • 3





      @Bringer128 Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS Microsoft hosts a .NET Core compatible package there for its IIS 10 REST API, but that is still not targeting other scenarios.

      – Lex Li
      Nov 19 '18 at 22:23
















    6















    1. If you project file, change the hint path to <HintPath>%windir%System32inetsrvMicrosoft.Web.Administration.dll</HintPath>.

    2. Check in.
      Then anyone who checks out should see the proper reference if IIS is installed. If IIS is not installed, there will be a reference error they need to resolve.


    To resolve, they either install IIS via Programs in Control Panel or via command line as @DzmitryLahoda pointed out.



    Again, any trick pointing you to the NuGet packages is improper,



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






    share|improve this answer
























    • This is correct. If you use the NuGet package then you are redistributing the assembly without permission from Microsoft (assuming you package it up into your deployment).

      – Bringer128
      Jun 21 '15 at 23:46








    • 3





      @Bringer128 Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS Microsoft hosts a .NET Core compatible package there for its IIS 10 REST API, but that is still not targeting other scenarios.

      – Lex Li
      Nov 19 '18 at 22:23














    6












    6








    6








    1. If you project file, change the hint path to <HintPath>%windir%System32inetsrvMicrosoft.Web.Administration.dll</HintPath>.

    2. Check in.
      Then anyone who checks out should see the proper reference if IIS is installed. If IIS is not installed, there will be a reference error they need to resolve.


    To resolve, they either install IIS via Programs in Control Panel or via command line as @DzmitryLahoda pointed out.



    Again, any trick pointing you to the NuGet packages is improper,



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






    share|improve this answer














    1. If you project file, change the hint path to <HintPath>%windir%System32inetsrvMicrosoft.Web.Administration.dll</HintPath>.

    2. Check in.
      Then anyone who checks out should see the proper reference if IIS is installed. If IIS is not installed, there will be a reference error they need to resolve.


    To resolve, they either install IIS via Programs in Control Panel or via command line as @DzmitryLahoda pointed out.



    Again, any trick pointing you to the NuGet packages is improper,



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







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered May 30 '15 at 3:46









    Lex LiLex Li

    42.1k67499




    42.1k67499













    • This is correct. If you use the NuGet package then you are redistributing the assembly without permission from Microsoft (assuming you package it up into your deployment).

      – Bringer128
      Jun 21 '15 at 23:46








    • 3





      @Bringer128 Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS Microsoft hosts a .NET Core compatible package there for its IIS 10 REST API, but that is still not targeting other scenarios.

      – Lex Li
      Nov 19 '18 at 22:23



















    • This is correct. If you use the NuGet package then you are redistributing the assembly without permission from Microsoft (assuming you package it up into your deployment).

      – Bringer128
      Jun 21 '15 at 23:46








    • 3





      @Bringer128 Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

      – TLS
      Oct 31 '16 at 16:42











    • @TLS Microsoft hosts a .NET Core compatible package there for its IIS 10 REST API, but that is still not targeting other scenarios.

      – Lex Li
      Nov 19 '18 at 22:23

















    This is correct. If you use the NuGet package then you are redistributing the assembly without permission from Microsoft (assuming you package it up into your deployment).

    – Bringer128
    Jun 21 '15 at 23:46







    This is correct. If you use the NuGet package then you are redistributing the assembly without permission from Microsoft (assuming you package it up into your deployment).

    – Bringer128
    Jun 21 '15 at 23:46






    3




    3





    @Bringer128 Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42





    @Bringer128 Looks like MS now owns the MWA NuGet package, so it might not be as wrong anymore.

    – TLS
    Oct 31 '16 at 16:42













    @TLS Microsoft hosts a .NET Core compatible package there for its IIS 10 REST API, but that is still not targeting other scenarios.

    – Lex Li
    Nov 19 '18 at 22:23





    @TLS Microsoft hosts a .NET Core compatible package there for its IIS 10 REST API, but that is still not targeting other scenarios.

    – Lex Li
    Nov 19 '18 at 22:23











    2














    Use Nuget:



    Microsoft.Web.Administration



    enter image description here






    share|improve this answer



















    • 1





      What is wrong with this obvious solution that it has -1 votes? Anyone care to elaborate?

      – Florian Winter
      Feb 9 '17 at 12:17






    • 1





      The Microsoft.Web.Administration package is known to be horribly implemented and more likely to cause harm than good.

      – Kristian Williams
      Apr 19 '18 at 12:54











    • The blogpost by Lex Li in his answer tells why one never wants to use the package. TL;DR: MWA is just a wrapper around IIS COM interfaces and is subject to change with each version of IIS. The NuGet package is designed for internal use in IIS.Administration.

      – Palec
      Dec 16 '18 at 7:52


















    2














    Use Nuget:



    Microsoft.Web.Administration



    enter image description here






    share|improve this answer



















    • 1





      What is wrong with this obvious solution that it has -1 votes? Anyone care to elaborate?

      – Florian Winter
      Feb 9 '17 at 12:17






    • 1





      The Microsoft.Web.Administration package is known to be horribly implemented and more likely to cause harm than good.

      – Kristian Williams
      Apr 19 '18 at 12:54











    • The blogpost by Lex Li in his answer tells why one never wants to use the package. TL;DR: MWA is just a wrapper around IIS COM interfaces and is subject to change with each version of IIS. The NuGet package is designed for internal use in IIS.Administration.

      – Palec
      Dec 16 '18 at 7:52
















    2












    2








    2







    Use Nuget:



    Microsoft.Web.Administration



    enter image description here






    share|improve this answer













    Use Nuget:



    Microsoft.Web.Administration



    enter image description here







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Aug 19 '15 at 16:22









    alansiqueira27alansiqueira27

    3,33184286




    3,33184286








    • 1





      What is wrong with this obvious solution that it has -1 votes? Anyone care to elaborate?

      – Florian Winter
      Feb 9 '17 at 12:17






    • 1





      The Microsoft.Web.Administration package is known to be horribly implemented and more likely to cause harm than good.

      – Kristian Williams
      Apr 19 '18 at 12:54











    • The blogpost by Lex Li in his answer tells why one never wants to use the package. TL;DR: MWA is just a wrapper around IIS COM interfaces and is subject to change with each version of IIS. The NuGet package is designed for internal use in IIS.Administration.

      – Palec
      Dec 16 '18 at 7:52
















    • 1





      What is wrong with this obvious solution that it has -1 votes? Anyone care to elaborate?

      – Florian Winter
      Feb 9 '17 at 12:17






    • 1





      The Microsoft.Web.Administration package is known to be horribly implemented and more likely to cause harm than good.

      – Kristian Williams
      Apr 19 '18 at 12:54











    • The blogpost by Lex Li in his answer tells why one never wants to use the package. TL;DR: MWA is just a wrapper around IIS COM interfaces and is subject to change with each version of IIS. The NuGet package is designed for internal use in IIS.Administration.

      – Palec
      Dec 16 '18 at 7:52










    1




    1





    What is wrong with this obvious solution that it has -1 votes? Anyone care to elaborate?

    – Florian Winter
    Feb 9 '17 at 12:17





    What is wrong with this obvious solution that it has -1 votes? Anyone care to elaborate?

    – Florian Winter
    Feb 9 '17 at 12:17




    1




    1





    The Microsoft.Web.Administration package is known to be horribly implemented and more likely to cause harm than good.

    – Kristian Williams
    Apr 19 '18 at 12:54





    The Microsoft.Web.Administration package is known to be horribly implemented and more likely to cause harm than good.

    – Kristian Williams
    Apr 19 '18 at 12:54













    The blogpost by Lex Li in his answer tells why one never wants to use the package. TL;DR: MWA is just a wrapper around IIS COM interfaces and is subject to change with each version of IIS. The NuGet package is designed for internal use in IIS.Administration.

    – Palec
    Dec 16 '18 at 7:52







    The blogpost by Lex Li in his answer tells why one never wants to use the package. TL;DR: MWA is just a wrapper around IIS COM interfaces and is subject to change with each version of IIS. The NuGet package is designed for internal use in IIS.Administration.

    – Palec
    Dec 16 '18 at 7:52













    1














    C:WindowsSystem32inetsrv



    or



    C:Windowswinsxsx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.1.7600.16385_none_c8472944f22a9c81



    C:WindowsWinSxSx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.3.9600.16384_none_5d1097a8ac709c4e






    share|improve this answer
























    • Not everyone installs Windows to C drive.

      – Lex Li
      May 30 '15 at 3:50
















    1














    C:WindowsSystem32inetsrv



    or



    C:Windowswinsxsx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.1.7600.16385_none_c8472944f22a9c81



    C:WindowsWinSxSx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.3.9600.16384_none_5d1097a8ac709c4e






    share|improve this answer
























    • Not everyone installs Windows to C drive.

      – Lex Li
      May 30 '15 at 3:50














    1












    1








    1







    C:WindowsSystem32inetsrv



    or



    C:Windowswinsxsx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.1.7600.16385_none_c8472944f22a9c81



    C:WindowsWinSxSx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.3.9600.16384_none_5d1097a8ac709c4e






    share|improve this answer













    C:WindowsSystem32inetsrv



    or



    C:Windowswinsxsx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.1.7600.16385_none_c8472944f22a9c81



    C:WindowsWinSxSx86_microsoft.web.administration-nonmsil_31bf3856ad364e35_6.3.9600.16384_none_5d1097a8ac709c4e







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Jun 9 '14 at 21:16









    user3178007user3178007

    334




    334













    • Not everyone installs Windows to C drive.

      – Lex Li
      May 30 '15 at 3:50



















    • Not everyone installs Windows to C drive.

      – Lex Li
      May 30 '15 at 3:50

















    Not everyone installs Windows to C drive.

    – Lex Li
    May 30 '15 at 3:50





    Not everyone installs Windows to C drive.

    – Lex Li
    May 30 '15 at 3:50











    1














    Try to ensure these assemblies are installed via prebuild event:




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



    In installed whole IIS with all features this way, so used FeatureName is guesstimate for assemblies. Try next to list all features for alternative:




    dism /online /Get-Features



    DISM is available for Windows earlier then 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.



    Also can try for Windows 7 and below:

    start /w pkgmgr /iu:IIS-WebServerManagementTools






    share|improve this answer





















    • 1





      Unfortunately this only applies to Windows 8 and above, technet.microsoft.com/en-us/library/hh825236.aspx For IIS 7 and 7.5, users need to use legacy ways.

      – Lex Li
      May 30 '15 at 3:49
















    1














    Try to ensure these assemblies are installed via prebuild event:




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



    In installed whole IIS with all features this way, so used FeatureName is guesstimate for assemblies. Try next to list all features for alternative:




    dism /online /Get-Features



    DISM is available for Windows earlier then 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.



    Also can try for Windows 7 and below:

    start /w pkgmgr /iu:IIS-WebServerManagementTools






    share|improve this answer





















    • 1





      Unfortunately this only applies to Windows 8 and above, technet.microsoft.com/en-us/library/hh825236.aspx For IIS 7 and 7.5, users need to use legacy ways.

      – Lex Li
      May 30 '15 at 3:49














    1












    1








    1







    Try to ensure these assemblies are installed via prebuild event:




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



    In installed whole IIS with all features this way, so used FeatureName is guesstimate for assemblies. Try next to list all features for alternative:




    dism /online /Get-Features



    DISM is available for Windows earlier then 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.



    Also can try for Windows 7 and below:

    start /w pkgmgr /iu:IIS-WebServerManagementTools






    share|improve this answer















    Try to ensure these assemblies are installed via prebuild event:




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



    In installed whole IIS with all features this way, so used FeatureName is guesstimate for assemblies. Try next to list all features for alternative:




    dism /online /Get-Features



    DISM is available for Windows earlier then 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.



    Also can try for Windows 7 and below:

    start /w pkgmgr /iu:IIS-WebServerManagementTools







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Jun 3 '15 at 14:37

























    answered Mar 23 '15 at 13:43









    Dzmitry LahodaDzmitry Lahoda

    3551829




    3551829








    • 1





      Unfortunately this only applies to Windows 8 and above, technet.microsoft.com/en-us/library/hh825236.aspx For IIS 7 and 7.5, users need to use legacy ways.

      – Lex Li
      May 30 '15 at 3:49














    • 1





      Unfortunately this only applies to Windows 8 and above, technet.microsoft.com/en-us/library/hh825236.aspx For IIS 7 and 7.5, users need to use legacy ways.

      – Lex Li
      May 30 '15 at 3:49








    1




    1





    Unfortunately this only applies to Windows 8 and above, technet.microsoft.com/en-us/library/hh825236.aspx For IIS 7 and 7.5, users need to use legacy ways.

    – Lex Li
    May 30 '15 at 3:49





    Unfortunately this only applies to Windows 8 and above, technet.microsoft.com/en-us/library/hh825236.aspx For IIS 7 and 7.5, users need to use legacy ways.

    – Lex Li
    May 30 '15 at 3:49











    1














    A bit of extra info, not a direct answer. IIS and IIS Express use two different versions of the same DLL, so your app might accidentally get the wrong one. See http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/






    share|improve this answer




























      1














      A bit of extra info, not a direct answer. IIS and IIS Express use two different versions of the same DLL, so your app might accidentally get the wrong one. See http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/






      share|improve this answer


























        1












        1








        1







        A bit of extra info, not a direct answer. IIS and IIS Express use two different versions of the same DLL, so your app might accidentally get the wrong one. See http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/






        share|improve this answer













        A bit of extra info, not a direct answer. IIS and IIS Express use two different versions of the same DLL, so your app might accidentally get the wrong one. See http://rdingwall.com/2013/09/22/microsoft-web-administration-confusion/







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Oct 5 '16 at 16:55









        Tom WinterTom Winter

        1,32611320




        1,32611320























            0














            The simplest way to do this is install NuGet in Visual Studio from this link.
            http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c



            Then, in Visual Studio, go to Tools->NuGet Package Manager-> Package Manager Console



            Then, select Default Project to be the project that you want to install to.



            Finally, Run Install-Package Microsoft.Web.Administration command.






            share|improve this answer
























            • I downvoted because this answer is the same as the currently top-voted one, which is posted 3 months earlier. The only thing this adds is a "guide" on installing NuGet, which imho is unrelated to the question.

              – Stijn
              Sep 18 '14 at 13:31











            • I was new to this and top voted question didn't help me out understanding how to follow the entire process. I did end up spending some time with it, so i thought i should post it and help someone else. But I don't mind down vote, i will keep it in mind. :) Thanks

              – thestar
              Sep 19 '14 at 0:03






            • 1





              The NuGet package is not from Microsoft, and goes against the official guide, blog.lextudio.com/2015/05/…

              – Lex Li
              May 30 '15 at 3:39






            • 1





              Lex Li.. Thank you for the comment, but where did i say NuGet Package is from Microsoft?

              – thestar
              May 31 '15 at 14:05






            • 1





              @thestar More importantly, the NuGet package has no licensing info, and the assembly is made by Microsoft while the NuGet package isn't. Legally you have no right to redistribute that assembly until Microsoft releases license information for that assembly.

              – Bringer128
              Jun 21 '15 at 23:45
















            0














            The simplest way to do this is install NuGet in Visual Studio from this link.
            http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c



            Then, in Visual Studio, go to Tools->NuGet Package Manager-> Package Manager Console



            Then, select Default Project to be the project that you want to install to.



            Finally, Run Install-Package Microsoft.Web.Administration command.






            share|improve this answer
























            • I downvoted because this answer is the same as the currently top-voted one, which is posted 3 months earlier. The only thing this adds is a "guide" on installing NuGet, which imho is unrelated to the question.

              – Stijn
              Sep 18 '14 at 13:31











            • I was new to this and top voted question didn't help me out understanding how to follow the entire process. I did end up spending some time with it, so i thought i should post it and help someone else. But I don't mind down vote, i will keep it in mind. :) Thanks

              – thestar
              Sep 19 '14 at 0:03






            • 1





              The NuGet package is not from Microsoft, and goes against the official guide, blog.lextudio.com/2015/05/…

              – Lex Li
              May 30 '15 at 3:39






            • 1





              Lex Li.. Thank you for the comment, but where did i say NuGet Package is from Microsoft?

              – thestar
              May 31 '15 at 14:05






            • 1





              @thestar More importantly, the NuGet package has no licensing info, and the assembly is made by Microsoft while the NuGet package isn't. Legally you have no right to redistribute that assembly until Microsoft releases license information for that assembly.

              – Bringer128
              Jun 21 '15 at 23:45














            0












            0








            0







            The simplest way to do this is install NuGet in Visual Studio from this link.
            http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c



            Then, in Visual Studio, go to Tools->NuGet Package Manager-> Package Manager Console



            Then, select Default Project to be the project that you want to install to.



            Finally, Run Install-Package Microsoft.Web.Administration command.






            share|improve this answer













            The simplest way to do this is install NuGet in Visual Studio from this link.
            http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c



            Then, in Visual Studio, go to Tools->NuGet Package Manager-> Package Manager Console



            Then, select Default Project to be the project that you want to install to.



            Finally, Run Install-Package Microsoft.Web.Administration command.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Jul 29 '14 at 13:46









            thestarthestar

            2,54622021




            2,54622021













            • I downvoted because this answer is the same as the currently top-voted one, which is posted 3 months earlier. The only thing this adds is a "guide" on installing NuGet, which imho is unrelated to the question.

              – Stijn
              Sep 18 '14 at 13:31











            • I was new to this and top voted question didn't help me out understanding how to follow the entire process. I did end up spending some time with it, so i thought i should post it and help someone else. But I don't mind down vote, i will keep it in mind. :) Thanks

              – thestar
              Sep 19 '14 at 0:03






            • 1





              The NuGet package is not from Microsoft, and goes against the official guide, blog.lextudio.com/2015/05/…

              – Lex Li
              May 30 '15 at 3:39






            • 1





              Lex Li.. Thank you for the comment, but where did i say NuGet Package is from Microsoft?

              – thestar
              May 31 '15 at 14:05






            • 1





              @thestar More importantly, the NuGet package has no licensing info, and the assembly is made by Microsoft while the NuGet package isn't. Legally you have no right to redistribute that assembly until Microsoft releases license information for that assembly.

              – Bringer128
              Jun 21 '15 at 23:45



















            • I downvoted because this answer is the same as the currently top-voted one, which is posted 3 months earlier. The only thing this adds is a "guide" on installing NuGet, which imho is unrelated to the question.

              – Stijn
              Sep 18 '14 at 13:31











            • I was new to this and top voted question didn't help me out understanding how to follow the entire process. I did end up spending some time with it, so i thought i should post it and help someone else. But I don't mind down vote, i will keep it in mind. :) Thanks

              – thestar
              Sep 19 '14 at 0:03






            • 1





              The NuGet package is not from Microsoft, and goes against the official guide, blog.lextudio.com/2015/05/…

              – Lex Li
              May 30 '15 at 3:39






            • 1





              Lex Li.. Thank you for the comment, but where did i say NuGet Package is from Microsoft?

              – thestar
              May 31 '15 at 14:05






            • 1





              @thestar More importantly, the NuGet package has no licensing info, and the assembly is made by Microsoft while the NuGet package isn't. Legally you have no right to redistribute that assembly until Microsoft releases license information for that assembly.

              – Bringer128
              Jun 21 '15 at 23:45

















            I downvoted because this answer is the same as the currently top-voted one, which is posted 3 months earlier. The only thing this adds is a "guide" on installing NuGet, which imho is unrelated to the question.

            – Stijn
            Sep 18 '14 at 13:31





            I downvoted because this answer is the same as the currently top-voted one, which is posted 3 months earlier. The only thing this adds is a "guide" on installing NuGet, which imho is unrelated to the question.

            – Stijn
            Sep 18 '14 at 13:31













            I was new to this and top voted question didn't help me out understanding how to follow the entire process. I did end up spending some time with it, so i thought i should post it and help someone else. But I don't mind down vote, i will keep it in mind. :) Thanks

            – thestar
            Sep 19 '14 at 0:03





            I was new to this and top voted question didn't help me out understanding how to follow the entire process. I did end up spending some time with it, so i thought i should post it and help someone else. But I don't mind down vote, i will keep it in mind. :) Thanks

            – thestar
            Sep 19 '14 at 0:03




            1




            1





            The NuGet package is not from Microsoft, and goes against the official guide, blog.lextudio.com/2015/05/…

            – Lex Li
            May 30 '15 at 3:39





            The NuGet package is not from Microsoft, and goes against the official guide, blog.lextudio.com/2015/05/…

            – Lex Li
            May 30 '15 at 3:39




            1




            1





            Lex Li.. Thank you for the comment, but where did i say NuGet Package is from Microsoft?

            – thestar
            May 31 '15 at 14:05





            Lex Li.. Thank you for the comment, but where did i say NuGet Package is from Microsoft?

            – thestar
            May 31 '15 at 14:05




            1




            1





            @thestar More importantly, the NuGet package has no licensing info, and the assembly is made by Microsoft while the NuGet package isn't. Legally you have no right to redistribute that assembly until Microsoft releases license information for that assembly.

            – Bringer128
            Jun 21 '15 at 23:45





            @thestar More importantly, the NuGet package has no licensing info, and the assembly is made by Microsoft while the NuGet package isn't. Legally you have no right to redistribute that assembly until Microsoft releases license information for that assembly.

            – Bringer128
            Jun 21 '15 at 23:45











            -4














            Add new project to your solution called "referenced assemblies" and add the DLL to this project - this way the DLL will be in the source control. You can then reference the project using the "Browse" option in add reference.



            Your colleagues will be happy because you they will not miss this DLL as it is in source control.






            share|improve this answer



















            • 1





              SVN doesn't care if it's in the solution or not.

              – Liam
              Aug 7 '13 at 13:13
















            -4














            Add new project to your solution called "referenced assemblies" and add the DLL to this project - this way the DLL will be in the source control. You can then reference the project using the "Browse" option in add reference.



            Your colleagues will be happy because you they will not miss this DLL as it is in source control.






            share|improve this answer



















            • 1





              SVN doesn't care if it's in the solution or not.

              – Liam
              Aug 7 '13 at 13:13














            -4












            -4








            -4







            Add new project to your solution called "referenced assemblies" and add the DLL to this project - this way the DLL will be in the source control. You can then reference the project using the "Browse" option in add reference.



            Your colleagues will be happy because you they will not miss this DLL as it is in source control.






            share|improve this answer













            Add new project to your solution called "referenced assemblies" and add the DLL to this project - this way the DLL will be in the source control. You can then reference the project using the "Browse" option in add reference.



            Your colleagues will be happy because you they will not miss this DLL as it is in source control.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Aug 7 '13 at 13:12









            PeterPeter

            1




            1








            • 1





              SVN doesn't care if it's in the solution or not.

              – Liam
              Aug 7 '13 at 13:13














            • 1





              SVN doesn't care if it's in the solution or not.

              – Liam
              Aug 7 '13 at 13:13








            1




            1





            SVN doesn't care if it's in the solution or not.

            – Liam
            Aug 7 '13 at 13:13





            SVN doesn't care if it's in the solution or not.

            – Liam
            Aug 7 '13 at 13:13


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f18104151%2fhow-to-reference-microsoft-web-administration%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            這個網誌中的熱門文章

            Xamarin.form Move up view when keyboard appear

            Post-Redirect-Get with Spring WebFlux and Thymeleaf

            Anylogic : not able to use stopDelay()