licensing - 构建服务器上的基础设施组件

标签 licensing build-automation infragistics emptylicenseslicx licenseslicx

我已经“继承”了一个新的(旧的?)Winforms项目,并希望将其放到我们的构建服务器(Bamboo)上。该构建服务器仅安装了绝对最小值(.NET 3.5,而没有更多),我们希望保持这种状态。

第一步,我将Infragistics组件的所有程序集文件(* .dll)提取到一个单独的目录中,并从该本地目录中引用它们(而不是依赖于它们在GAC中的安装)。工作正常。

但是,当我尝试在Bamboo上运行此版本(使用MSBuild)时,却不断收到错误消息:


Properties \ licenses.licx(1):错误
LC0004:发生异常创建
类型
'Infragistics.Win.UltraWinToolbars.UltraToolbarsManager,
Infragistics2.Win.UltraWinToolbars.v7.2,
版本= 7.2.20072.61,文化=中性,
PublicKeyToken = 7dd5c3163f2cd0cb'
System.ComponentModel.LicenseException


经过一番谷歌搜索后,项目中的那些licenses.licx文件似乎是一种许可方案,以防止将这些工具安装在多台计算机上。

但是,如何摆脱这些限制,以便构建服务器构建能够正常工作,而无需在构建服务器上安装完整的Infragistics组件集(这不是一个选择)?


如果我只是从项目中删除它们,则该构建可能会起作用(尚未尝试),但是我的设计时经验会受到影响/不起作用(两者中的哪一个?)
随处携带文件,以便我的设计时经验能防止自动构建运行...。


嗯....经典的catch-22-有什么办法吗?

最佳答案

我发现解决此问题的唯一方法是:


在解决方案所在的文件夹中创建一个绝对为空(长度为0字节)的文件licenses.licx
在构建的初始阶段,从我的源存储库中提取源
时间到了,就在构建开始之前,我将这个空的licenses.licx复制到各个项目的licenses.licx目录中的所有现有Properties


有了这个,我现在有了两种互动的经验(因为存在正确的licenses.licx文件),但是我的自动构建也没有中断(因为复制到所有真实文件中的空licenses.licx文件没有)导致构建中止)

似乎有点骇人听闻-但它可行。希望有一天能对某人有所帮助。

更新:我将此BeforeBuild步骤添加到我的MSBuild构建文件中,以将空的*.licx文件复制到我需要的位置:

<Target Name="BeforeBuild">
   <CreateItem Include="licenses.licx">
       <Output TaskParameter="Include" ItemName="EmptyLicensesLicx" />
   </CreateItem>

   <Copy SourceFiles="@(EmptyLicensesLicx)" 
         DestinationFolder="(your-target-folder-here)" 
         ContinueOnError="true" />

</Target>


由于我需要在多个位置替换此* .licx文件,因此实际上我有几个<Copy>任务可以实现我的目标。

关于licensing - 构建服务器上的基础设施组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071459/

相关文章:

open-source - Microsoft 互惠许可证 (Ms-RL)

java - 制造情况!部分程序使用 3 种编程语言。使用哪个构建工具?

build-automation - 有哪些学习使用 NAnt 的好资源?

open-source - 你如何正确地信任开源项目?

azure-active-directory - 用于检索许可证/计划信息的 Microsoft Graph API

java - AEM - We Retail 网站上的自定义实现

.net - MSBuild 扩展包与 MSBuild 社区任务

wpf - 如何在Infragistics XamDataGrid中启用/禁用标题复选框

javascript - 如何从 Javascript 中的行获取包含的 WebDataGrid (Infragistics NetAdvantage) 控件?

angular - 如何设置igxDialog的宽高?