Infragistics许可文件将自己添加到项目中?

时间:2010-09-10 14:07:03

标签: .net visual-studio .net-2.0 infragistics

我在VB.NET .NET 2中有一个解决方案

在整个应用程序中使用Infragistics组件。

有一天决定为我们的表单添加浮动工具栏支持。

我们的表单继承了一个基本形式 - BaseForm。此基本表单用于解决方案中的多个项目。

因此,在BaseForm上添加了UltraToolbarsManager

因为,噩梦开始了: licenses.licx 开始在设计师打开的每个表单上创建并添加到项目中....

licenses.licx包含:

  

Infragistics.Win.UltraWinToolbars.UltraToolbarsManager,   Infragistics2.Win.UltraWinToolbars.v6.3,   版本= 6.3.20063.53,文化=中立,   公钥= 7dd5c3163f2cd0cb

怎么办?为什么此许可证文件以继承的形式出现?

4 个答案:

答案 0 :(得分:5)

只有在向表单添加控件时才会创建许可证文件。如果您使用现有的Infragistics控件打开表单,它将不会执行任何操作。

如果在添加控件后删除license.licx文件中的所有行,则一切都应该有效。

我们的环境中有一个已检查的license.licx文件,该文件为空,我们使源代码管理忽略许可证文件,因此开发人员计算机上的任何更改都不会进入构建计算机或其他任何位置。

答案 1 :(得分:0)

在网络上有很多关于licenses.licx文件的信息(以及它经常激发的相关的嚎叫和咬牙切齿)。

基本上,此文件存储在参与.NET组件许可方案的设计器中加载的每个程序集的强名称(组件开发人员可以利用的简单内置机制来确定开发人员是否使用许可或演示/精简版其组件)。

每当设计人员加载这样的程序集时,它会将程序集的强名称添加到导致加载的项目中。由于您将工具栏添加到基本表单中,因此打开一个继承的表单将导致该程序集加载,这会将该行添加到文件中(如果需要,可以创建它,这就是您所看到的)。

不幸的是,关于它所创造的问题,没有太多可以做的事情。你有什么麻烦吗?

答案 2 :(得分:0)

我找到解决此问题的最佳方法是从源代码管理中的所有解决方案中删除所有licenses.licx文件,然后让Visual Studio在窗体上实例化控件时在每台计算机上本地重新创建该文件。此文件在解决方案目录中创建,但未明确添加到源代码管理中,绝不应该是。

答案 3 :(得分:0)

这是您手动执行的操作,这相对容易做到:

  1. 将licx文件从旧项目复制到新项目的“我的项目”文件夹中。如果“我的项目”文件夹不存在,请创建它。

  2. 在文本编辑器中打开vbproj文件,然后找到Resources.resx部分,该部分如下所示:

<ItemGroup>
    <EmbeddedResource Include="My Project\Resources.resx">
        <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
        <LastGenOutput>Resources.Designer.vb</LastGenOutput>
        <CustomToolNamespace>My.Resources</CustomToolNamespace>
        <SubType>Designer</SubType>
    </EmbeddedResource>
</ItemGroup>

并将其更改为此:

<ItemGroup>
    <EmbeddedResource Include="My Project\Resources.resx">
        <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
        <LastGenOutput>Resources.Designer.vb</LastGenOutput>
        <CustomToolNamespace>My.Resources</CustomToolNamespace>
        <SubType>Designer</SubType>
    </EmbeddedResource>
   <EmbeddedResource Include="My Project\licenses.licx" />
</ItemGroup>

3。在Visual Studio中重新打开项目。