我认为你可以做到以下几点:
1)创建名为Resources.ClientA
和Resources.ClientB
两个组件。它们应该具有完全相同的内容(相同名称空间中的相同类),但该内容应该是相应客户端的客户端特定的。例如,我已经添加下面的类仅仅是一个例子:
// assembly for ClientA :
namespace Resources
{
public class Class1
{
public static string Text { get { return "Client A text"; } }
}
}
// assembly for ClientB :
namespace Resources
{
public class Class1
{
public static string Text { get { return "Client B text"; } }
}
}
2)打开你的主项目文件(的csproj),并添加:
<PropertyGroup>
<ClientToken>ClientA</ClientToken>
</PropertyGroup>
3)在同一文件下添加引用:
<ItemGroup>
<ProjectReference Include="..\Resources.$(ClientToken)\Resources.$(ClientToken).csproj">
<Name>Resources.$(ClientToken)</Name>
</ProjectReference>
</ItemGroup>
现在通过替换ClientToken
属性,您可以替换客户端特定的程序集。您也可以将此属性指定为持续集成过程的一部分,但可能需要稍微修改csproj文件,以便从外部使用此属性,并且只有在未设置时才设置某个默认值。
另外我不确定更简单的方法来完成您的任务,可能有一些。