我正在为我的公司开发一个软件工具.我正在使用Visual Studio,C#并以.NET 4.0为目标.其中一个要求是软件将以三个版本(有限,标准和扩展)发布.我公司有几名实习生/实习生以及一些正式员工和经理.每个小组都将获得该软件的其他版本.实习生的限制版本,员工的标准版本和管理人员的扩展版本.Theese是给我的要求.而且,每个版本必须是一个可执行文件(没有dll文件).
因此,我创建了一个包含一组文件的项目,这些文件将被有条件地编译和构建.在主程序中,我可以使用指令#if和/或[Conditional]属性来根据当前配置仅实例化所需的类.
但是无论如何都要编译和构建当前不需要的文件.并且创建的可执行文件包含来自这些文件的所有代码,这些代码是不合需要的,并且不符合给我的要求.每个可执行文件应仅包含目标员工组所需的代码.(这是出于安全原因.)
所以我的问题是如何根据当前配置从编译过程中排除一组文件?
首先我的代码.我有一节课:
class Person {
public int Id { set; get; }
public string Name { set; get; }
public Person(int i, string n) {Id = i; Name = n;}
}
Run Code Online (Sandbox Code Playgroud)
和一个ComboBox对象:
this.comboBox_Persons = new System.Windows.Forms.ComboBox();
Run Code Online (Sandbox Code Playgroud)
在我的代码中的某个地方:
List<Person> persons = new List<Person>() {
new Person(5, "John"),
new Person(8, "Mike")
};
comboBox_Persons.Items.Clear();
comboBox_Persons.DisplayMember = "Name";
comboBox_Persons.ValueMember = "Id";
comboBox_Persons.DataSource = persons;
Run Code Online (Sandbox Code Playgroud)
以及静态成员和事件处理程序:
public static string test = "";
void comboBox_PersonsSelectedIndexChanged(object sender, EventArgs e)
{
test = test + "1";
string id = …Run Code Online (Sandbox Code Playgroud)