Our group solution has a csproj file with the following:
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\..\..\Windows\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
</ItemGroup>
We're concerned about the Microsoft.Web.Administration line. It's relative and takes it all the way down to C:\Windows. As it is, it appears that everyone in our group checks out the code from source control to the same place on their computer so this hasn't caused a problem so far. However, this feels wrong to us. What if someone in the future checks out the code in a different location or, heaven forbid, on a drive other than C:\?
Is there a better way to do this? Perhaps we could put this dll in SVN and bring it in through an SVN externals reference. Or maybe we should just change it to a absolute reference. Or maybe we can get rid of the hint path all together and just have:
<Reference Include="Microsoft.Web.Administration />
I don't know anything about this dll, but it seems like something that should be in the GAC, right?