Лицензионный файл Infragistics добавить себя в проект? - PullRequest
5 голосов
/ 10 сентября 2010

У меня есть решение в VB.NET .NET 2

Использование компонентов Infragistics во всем приложении.

Однажды было решено добавить в наши формы поддержку плавающей панели инструментов.

Наши формы наследуют одну базовую форму - BaseForm.Эта базовая форма используется в нескольких проектах в решении.

Итак, на BaseForm была добавлена ​​UltraToolbarsManager.

С тех пор, как начался кошмар: лицензии .licx начал создавать и добавлять себя в проект в каждой форме, открытой в конструкторе ....

licenses.licx содержит:

Infragistics.Win.UltraWinToolbars.UltraToolbarsManager, Infragistics2.Win.UltraWinToolbars.v6.3, Версия = 6.3.20063.53, Культура = нейтральная, PublicKeyToken = 7dd5c3163f2cd0cb

Что делать?Почему этот файл лицензии отображается в унаследованных формах?

Ответы [ 4 ]

5 голосов
/ 16 сентября 2010

Файл лицензии создается только при добавлении элемента управления в форму. Он ничего не сделает, если вы откроете форму с существующими элементами управления Infragistics.

Если вы удалите все строки в файле license.licx после добавления элемента управления, все должно работать.

В нашей среде есть проверенный файл license.licx, который пуст, и мы заставляем систему контроля версий игнорировать файл лицензии, чтобы любые изменения на компьютере разработчика не вносили его в машину для сборки или где-либо еще.

0 голосов
/ 19 сентября 2018

Вот как вы делаете это вручную, что относительно легко сделать:

  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.

0 голосов
/ 03 февраля 2011

Лучший способ обойти это - удалить все файлы licenses.licx из всех решений системы управления версиями, а затем позволить Visual Studio воссоздать файл локально на каждом компьютере, когда вы создаете экземпляр элемента управления в форме. Этот файл создается в каталоге вашего решения, но явно не добавляется в систему контроля версий, и никогда не должен быть.

0 голосов
/ 10 сентября 2010

В Интернете есть файл информации о файле licenses.licx (и связанных с ним воплях и скрежетах зубов, которые он часто вызывает).

По сути, этот файл хранит строгое имя каждой сборкизагружается в конструктор, который участвует в схеме лицензирования компонентов .NET (простой встроенный механизм, который разработчики компонентов могут использовать для определения, использует ли разработчик лицензионную или демонстрационную / облегченную версию своих компонентов).

Каждый раз, когда конструктор загружает такую ​​сборку, он добавляет строгое имя сборки в проект, вызвавший загрузку.Поскольку вы добавили панель инструментов в базовую форму, открытие унаследованной формы приведет к загрузке этой сборки, которая добавляет строку в файл (и создает ее при необходимости, что и происходит).

К сожалению, с создаваемыми проблемами мало что можно сделать.Какие у вас проблемы с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...