mar*_*c_s 18 build-automation licensing 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,Version = 7.2.20072.61,Culture = neutral,PublicKeyToken = 7dd5c3163f2cd0cb'系统发生异常.ComponentModel.LicenseException
经过一些谷歌搜索,似乎licenses.licx项目中的那些文件是某种许可方案,以防止工具安装在几台机器上.
但是,我如何摆脱那些,以便我的构建服务器构建将工作,而无需在构建服务器上安装完整的Infragistics组件集(这不是一个选项)?
嗯....经典的捕获22 - 任何出路?
mar*_*c_s 26
我找到解决这个问题的唯一方法是:
licenses.licx在解决方案所在的文件夹中创建一个绝对空(0字节长)的文件licenses.licx所有现有内容licenses.licx中Properties有了这个,现在我有我的交互式体验(因为存在正确的licenses.licx文件),但我的自动构建也没有中断(因为licenses.licx我复制了所有真实文件的空文件不会导致构建中的任何中止)
似乎有点hackish - 但它的工作原理.希望有一天能帮到别人某个地方.
更新:我将此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>
Run Code Online (Sandbox Code Playgroud)
由于我需要在几个地方替换这个*.licx文件,我实际上有几个<Copy>任务来实现我的目标.
| 归档时间: |
|
| 查看次数: |
12575 次 |
| 最近记录: |