Vic*_*tor 5 .net c# visual-studio software-product-lines
我正在为我的公司开发一个软件工具.我正在使用Visual Studio,C#并以.NET 4.0为目标.其中一个要求是软件将以三个版本(有限,标准和扩展)发布.我公司有几名实习生/实习生以及一些正式员工和经理.每个小组都将获得该软件的其他版本.实习生的限制版本,员工的标准版本和管理人员的扩展版本.Theese是给我的要求.而且,每个版本必须是一个可执行文件(没有dll文件).
因此,我创建了一个包含一组文件的项目,这些文件将被有条件地编译和构建.在主程序中,我可以使用指令#if和/或[Conditional]属性来根据当前配置仅实例化所需的类.
但是无论如何都要编译和构建当前不需要的文件.并且创建的可执行文件包含来自这些文件的所有代码,这些代码是不合需要的,并且不符合给我的要求.每个可执行文件应仅包含目标员工组所需的代码.(这是出于安全原因.)
所以我的问题是如何根据当前配置从编译过程中排除一组文件?
您要实现的目标是开发软件产品线(1).这个领域有很多研究正在进行中.目前的解决方案非常有限,其中大部分已在评论中提及:
你也可以开发完全独立的3个应用程序,这不是你想要的.但是请注意,您可以在库中提取常用功能,然后使用ILMerge(4)返回每个版本的单个.exe文件.
我认为这些是您的选择,您应该根据自己的情况选择最佳组合.如果您的三个应用程序非常相似并且共享许多功能,我会选择"#if"或多个解决方案文件(因为您仅限于3个版本).如果版本差异很大,那么ILMerge和提取常用功能是一种更好的方法.我不知道功能定位是否已准备就绪,所以我提到它们是为了完整性.
并且不要忘记CodeNaked的评论:您的安全性应该真的不依赖于用户可用的代码......
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |