HttpWebRequest をシムしようとすると問題が発生します。システム アセンブリのフェイク アセンブリを追加しただけでは、すぐには機能しません。ただし、fakes ファイルを変更して特定の名前空間を追加すると、機能します。
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="System" Version="4.0.0.0"/>
<ShimGeneration>
<Clear/>
<Add FullName="System.Net.WebRequest!"/>
<Add FullName="System.Net.HttpWebRequest!"/>
<Add FullName="System.Net.HttpWebResponse!"/>
</ShimGeneration>
</Fakes>
問題は、これがローカルでしか機能しないことです。Team Foundation Server の自動ビルドは、ShimHttpWebRequest を解決しようとするとエラーをスローします。ビルドサーバーでVSを使用して手動でビルドすると機能するため、自動ビルドはフェイクファイルを無視するようです。