我正在尝试在WPF应用程序中使用第三方UI控件。这个特殊控件有很多特性/特性使它具有吸引力,但它们的授权方案真的很痛苦......但也许这就是很多第三方供应商的运作方式。
在我们的解决方案中,我们有两个值得关注的项目。为简单起见,我将它们表示为“StartUpProject”和“FeatureAProject”。假设其他开发人员正在处理的应用程序中的其他项目被命名为“FeatureBProject”,“FeatureCProject”等等......
StartUpProject包含对所有Feature *项目的引用。
第三方dll位于常见的“References”文件夹中,两个项目(StartUpProject和FeatureAProject)都引用此文件位置的第三方程序集。
- StartUpProject是主要的WPF启动项目,包括App.xaml / App.xaml.cs。它包含一个licx文件,其中包含第三方控件的单个条目。
- FeatureAProject包含此第三方UI控件的实现。
由于第三方控制公司的许可方案的实施方式,为了简单地通过VS构建应用程序,每个开发人员必须安装第三方控件的许可副本 - 即使是那些正在处理其他功能的人FeatureA。
必须有办法解决这个问题......
我想以这样的方式构建我们的解决方案和项目,即“第三方控制开发人员”(即FeatureA开发人员)是唯一需要安装在其计算机上的控件的许可副本的人,而其他开发人员仍然可以构建解决方案。
我的第一个想法是利用从许可的开发机器构建的二进制引用。
(1)我不确定哪个程序集需要是二进制引用:StartUpPorject或FeatureAProject?它是StartUpPorject中的licx文件触发许可证检查,因此是未经许可的开发人员构建的例外吗?
(2)如果我们采用二进制引用路由,每次开发人员对FeatureAProject进行更改时都需要更新引用...这样可行,但额外开销肯定不理想。是否有更好的解决方法?我们能以某种方式将整个第三方控件使用重构为一个从许可机器构建一次的附加程序集吗?然后,FeatureA可以使用此程序集,并且在对FeatureA进行更改时不必更新。
我希望这是有道理的。
谢谢!