2013-08-07 10 views
44

Microsoft.Web.Administrationアセンブリは、自分のマシンのC:\Windows\System32\inetsrvにあります。私はそれがIISの一部としてインストールされていると信じています。アセンブリはGACにもあります。Microsoft.Web.Administrationを参照する方法?

他の人がチェックアウトできるようにプロジェクトをSVNにコミットしたい場合は、プロジェクトからこのアセンブリを参照する方法を教えてください。 Microsoft.Web.AdministrationはVisual Studioの[参照の追加]リストに表示されません。 C:\Windows\System32\inetsrv\Microsoft.Web.Administrationへの参照を追加できますが、これは他の開発者が別のパスやドライブにインストールしている可能性があるため、悪い考えです。

私はそれをプロジェクトフォルダにコピーできますが、SVNにバイナリをコミットする必要があります。

+3

dvdをsvnに追加すると、他の人がそれをチェックアウトしてプロジェクトで使用できるようになります。また、セットアップに追加することも考えてください。 – Reniuz

+1

私はGACの参考文献に固執しています。 – tnw

+1

@ tnwその後、IIS機能を有効にする必要があります。 – Reniuz

答えて

6

NuGetで検索してインストールします。パッケージフォルダにインストールされ、プロジェクト構造に従って場所を変更し、新しいパスを反映するために参照を再追加します。私は通常、libフォルダを作成し、すべての外部ライブラリを配置します。プロジェクトの

フォルダ構造は

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

Microsoft.Web.AdministrationがプログラムIISを管理するために使用されることができ、それは[参照の追加]ウィンドウから利用できません。 C:\ Windows \ System32 \ inetsrvから参照を追加すると、参照の問題が発生します。だから、プロジェクトの内部のlibフォルダに入れてSVNでチェックする方がいいです。

+0

+ 1アセンブリがNuGetに追加されたことをうれしく思っています...もしも彼らが "Microsoft.Web.Management"を追加しただけの場合は、なぜか(あいまいなdllのすべてではありませんか?) – dyslexicanaboko

+2

@dyslexicanaboko、NuGet経由のパッケージングは​​間違っています。 https://blog.lextudio.com/2015/05/whats-microsoft-web-administration-and-the-horrible-facts-you-should-know/ –

+0

@LexLi MSが現在MWA NuGetパッケージを所有しているようですそれはもう間違っていないかもしれません。 – TLS

-4

「参照されたアセンブリ」と呼ばれる新しいプロジェクトをソリューションに追加し、DLLをこのプロジェクトに追加します。この方法でDLLがソース管理に追加されます。次に、参照の追加で[参照]オプションを使用してプロジェクトを参照できます。

あなたの同僚は、このDLLをソース管理のように見逃すことはないため、満足しています。

+1

SVNはソリューションに含まれているかどうかは気にしません。 – Liam

8

プロジェクトファイルを手動で変更することができます。以下のような参照は関係なく、その場所のGACにアセンブリを見つける変更/追加:

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

もちろん、機能「IIS管理コンソールは」のみがインストールされている場合。あなたは、単にコードにヒントを残すことがあります。

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

これは皆にとっての答えではないかもしれませんが、これは私が必要としていたものです。このアセンブリには、IIS用とIIS用の2つのバージョンがあることに気づく必要があります。 NuGetを介して利用できるのはIIS用のものなので、実際にIIS Expressのバージョンが必要な場合は動作しません。もしそうなら、おそらくNuGetを介して追加するほうがお勧めです。 –

+0

@DerekGreer、NuGetパッケージも間違ったアプローチです。https://blog.lextudio.com/2015/05/whats-microsoft-web-administration-and-the-horrible-facts-you-should-know/ –

+0

@ LexLi MSがMWA NuGetパッケージを所有しているように見えるので、もう間違っていない可能性があります。 – TLS

33

次の手順は、私のために働いている:

  1. コピーします*.csprojが配置されているフォルダにC:\Windows\System32\inetsrv
  2. に位置Microsoft.Web.Administration.dllを追加しますフォルダ/libMicrosoft.Web.Administration.dll/libフォルダに貼り付けます。
  3. *.csprojの.dllへの相対パスを追加します。0123を開きます。、タグ<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>

で最後、あなたのSVNリポジトリに/ libを追加します。 SVNチェックアウトの後、各マシンで私のために動作します。

あなたはC:\Windows\System32\inetsrvMicrosoft.Web.Administration.dll含まれていない場合は、WindowsでIIS管理コンソールを有効特長:

Adding the management service to windows features

1

C:\ WINDOWS \ System32に\

または

C inetsrvには: \ 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

+0

誰もがWindowsをCドライブにインストールしません。 –

0

これを行うための最も簡単な方法は、このリンクからのVisual StudioでNuGetをインストールしています。 http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c

次に、Visual Studioで、[ツール] - > [NuGetパッケージマネージャ - に行く>パッケージマネージャコンソール

次に、あなたがインストールするプロジェクトであることをデフォルトのプロジェクトを選択します。

最後に、Install-Package Microsoft.Web.Administrationコマンドを実行します。

+0

私はこの回答が3ヶ月前に掲載されている現在投票されている投票と同じであるため、私は投票しませんでした。これが追加する唯一の事は、NuGetをインストールする際の "ガイド"です。imhoはその質問には関係ありません。 – Stijn

+0

私はこのことを初めて知りました。投票した質問のトップは、プロセス全体のやり方を理解する助けにはなりませんでした。私はそれでいくつかの時間を過ごすことになったので、私はそれを投稿し、他の誰かを助けるべきだと思った。しかし、私は投票を気にしない、私はそれを念頭に置くでしょう。 :)ありがとう – thestar

+1

NuGetパッケージはマイクロソフトからのものではなく、公式ガイドhttps://blog.lextudio.com/2015/05/whats-microsoft-web-administration-and-the-horrible-facts-you -should-know/ –

1

これらのアセンブリは、事前に作成イベントを介してインストールされていることを確認してみてください:インストール全体で

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

のでFeatureNameは、アセンブリのためguesstimateで使用され、すべての機能をこのようにIIS。代替のためのすべての機能をリストの横に試してみてください。

dism /online /Get-Features

DISMは、以前の8から、Windowsで利用可能です: To service inbox drivers in an offline image of Windows Vista with Service Pack 2 (SP2) or Windows Server 2008 with SP2, you must use the Windows 7 version of DISM or PkgMgr. The Windows 7 version of DISM is available in Windows 7 and Windows PE 3.0 operating systems, or can be installed with the Windows Automated Installation Kit (Windows AIK) or the Windows OEM Preinstallation Kit (Windows OPK) for Windows 7.

また、Windows 7のために試してみて、以下のことができます。 start /w pkgmgr /iu:IIS-WebServerManagementTools

+1

残念ながら、これはWindows 8以上、https://technet.microsoft.com/en-us/library/hh825236.aspxにのみ適用されます。IIS 7および7.5の場合、ユーザーは従来の方法を使用する必要があります。 –

4
  1. ファイルを投影する場合は、ヒントパスを<HintPath>%windir%\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>に変更します。
  2. チェックイン IISがインストールされている場合、チェックアウトした人は誰でも適切な参照を参照する必要があります。 IISがインストールされていない場合、解決する必要がある参照エラーが存在します。

解決するには、コントロールパネルのプログラムまたはコマンドラインから@DzmitryLahodaが指摘した方法でIISをインストールします。

ここでも、NuGetパッケージにあなたを指しているすべてのトリックは、

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

+0

これは正しいです。 NuGetパッケージを使用する場合は、マイクロソフトの許可なしにアセンブリを再配布します(展開にパッケージすると仮定します)。 – Bringer128

+1

@ Bringer128 MSは現在MWA NuGetパッケージを所有しているように見えるので、間違っていない可能性があります。 – TLS

2

使用Nuget不適切です:

Microsoft.Web。管理

enter image description here

+1

-1投票を持つこの明白な解決策で何が問題になっていますか?誰でも気をつけてみる? –

関連する問題