好的,让我们试着解释一下我想要实现的目标。
我的项目中有一个文件夹结构,即
class Program
{
static void Main(string[] args)
{
String[] strings = { new String() { Name = "1123", Rank = "a" }, new String() { Name = "3123", Rank = "x" }, new String() { Name = "3134311", Rank = "c" } };
StringComparer comparer = new StringComparer();
comparer.SortBy = StringComparer.CompareField.Name;
Array.Sort(strings, comparer);
foreach (String s in strings)
{
Console.WriteLine(s.Name);
}
comparer.SortBy = StringComparer.CompareField.Rank;
Array.Sort(strings, comparer);
foreach (String s in strings)
{
Console.WriteLine(s.Rank);
}
}
}
class String
{
public string Name { get; set; }
public string Rank { get; set; }
}
class StringComparer : IComparer<String>
{
public enum CompareField
{
Name,
Rank
}
public CompareField SortBy = CompareField.Name;
public int Compare(String x, String y)
{
switch (SortBy)
{
case CompareField.Name:
return x.Name.CompareTo(y.Name);
case CompareField.Rank:
return x.Name.CompareTo(y.Rank);
}
return x.Name.CompareTo(y.Name);
}
}
当我构建项目时,我传递了一个密钥,说明要构建ClientOneOverride。我希望Visual Studio在Views目录中构建基本文件,然后使用CLientOneOverride文件夹内容覆盖它们。
因此,在此示例中,我希望VS构建Views -> Directory
-----ClientOneOverride -> Directory
----------------------Home.cshtml -> File
----------------------About.cshtml -> File
-----Home.cshtml -> File
-----About.cshtml -> File
-----Contact.cshtml -> File
,然后在ClientOneOverride目录中覆盖Home.cshtml, About.cshtml, Contact.cshtml
,因为特定客户端的Home.cshtml and About.cshtml
与{0}相同基础版。这有可能吗?
我想这样做是为了确保所有客户端的逻辑保持不变,但只是改变它们的前端。
***** UPDATE ******
我会尝试解释我想要实现的目标。
我有一个MVC项目,这个项目包含默认的文件夹结构,如
Contact.cshtml
我正在构建此项目的多个客户端,但正如您所知,每个客户端都有自己的网站应该是什么样子的想法。我不怪他们。
所以我想要做的是编写网站的基本版本,然后编写客户特定的部分,如下所示。
在我的Views文件夹中,我有一个名为Controllers
Models
View
的{{1}}文件,此视图是一个局部视图,只包含几个div和其他内容。此.cshtml
文件是基本文件,因此每个客户端都具有此文件的外观。比如我的客户想要拥有自己的Index.cshtml
文件的外观和感觉,我希望能够让他们自定义它。那么在Index.cshtml
文件夹中我将使用客户名称创建另一个文件夹,让我们调用此客户端Index.cshtml
。
所以文件夹结构看起来像这样
Views
现在我要做的是以下内容。在我构建了基础之后,然后构建了每个客户端特定的外观实现方式,我只想ClientA
他们的特定功能集。
因此,如果我正在为ClientA构建应用程序 - &gt;我首先希望所有基本文件都由Visual Studio构建,然后我希望Visual Studio运行Views ----This is the base folder
-----ClientA ----Client specific folder inside the base folder
------------Index.cshtml ----Client specific file override
-----Index.cshtml ----Base file if client does not want a custom override of the normal look and feel.
文件夹agian,然后如果它们是Build -- Visual Studio Build
覆盖它应该替换基本文件覆盖文件。
所以在构建过程开始之前,我想指定应该在哪个客户端进行构建。
我希望有人关注我,并且有人确实理解我想要实现的目标。
我知道GULP的工作是可以实现的,但我想在Visual Studio中完成。
这甚至是远程可能吗?