Спасибо, ребята, за ваши ответы. Теперь у меня есть решение, которое работает для меня, не помещая интерфейс в отдельную сборку и в GAC. Я не рассматриваю использование интерфейса для других проектов, просто использую один и тот же интерфейс для нескольких служб в одном проекте.
То, что я пытался сделать, - это внести изменения между RealService и TestService в файле конфигурации службы WCF, чтобы клиент не знал разницы (клиенту не пришлось бы изменять свою конфигурацию, чтобы указывать на другую. SVC файл). Я не уверен, что это возможно, или, по крайней мере, если это так, это определенно не так просто.
То, что я сейчас делаю, - это просто указание обеих служб в файле конфигурации службы WCF, а затем я указываю клиенту одну или другую в зависимости от того, какую службу я хочу. Поскольку этот сервис WCF предназначен только для внутреннего использования, и мы контролируем как клиента, так и сервис, это неплохой компромисс. В любом случае, это решение, вероятно, более очевидно в своих намерениях.
Вот фрагмент файла конфигурации:
<services>
<service behaviorConfiguration="WcfService1.Service1Behavior"
name="WcfService1.TestService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="testBasicHttpBinding"
contract="WcfService1.IUselessService">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="WcfService1.Service1Behavior"
name="WcfService1.RealService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="testBasicHttpBinding"
contract="WcfService1.IUselessService">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>