2010-06-15 2 views
4

Фоновая информация: Я установил очень простое .NET-решение в VS2008, которое содержит достаточно кода для отображения отчета ActiveReports в окне предварительного просмотра. Компонент ActiveReports использует механизм licenses.licx, чтобы решить, правильно ли он лицензирован или нет. Если он не найдет действительного лицензионного ключа, он отобразит заметное сообщение в предложении отчета, «Это оценочная копия, [бла-бла-бла и т. Д.]».Компилятор лицензий .NET (LC.EXE), похоже, игнорирует содержимое license.licx на одной машине, но не на другом. Зачем?

Моя проблема: У меня есть два компьютера с одинаковыми версиями VS2008 и ActiveReports. У меня есть действующие лицензии для каждой установки. Теперь, когда я создаю свое решение на одной машине, я получаю предварительный просмотр отчета без сообщения баннера оценки, а с другой - то же самое решение компилируется в приложение, которое отображает оценочное сообщение.

То, что я узнал до сих пор: Использование Reflector.NET я узнал, что на второй машине (которая отображает сообщение об оценке), лицензия компилятор (LC.EXE) как-то, кажется, игнорируют ActiveReports лицензии линию licenses.licx. Но он не будет выводить никаких сообщений об ошибках или предупреждениях.

⇒ Таким образом, этот вопрос остается: При каких обстоятельствах LC.EXE решил игнорировать строку текста из licenses.licx, когда он производит выходные MyApplication.licenses внедренный ресурс?


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

P.P.S .: Не совсем уверен, является ли это вопросом переполнения стека или для суперпользователя.

+0

Я нашел несколько советов, которые могут оказаться полезными (попробуем некоторые из них завтра): http://keyoti.com/kb/Default.aspx?ToDo=view&questId=76&catId=64 – stakx

ответ

3

OK – Я не могу быть уверен, но я подозреваю причину этой проблемы.

Я подозреваю, что LC.EXE будет исследовать все элементы управления, перечисленные в licenses.licx, когда он скомпилирует этот файл. Если во время этого опроса какой-либо из перечисленных элементов управления определяет, что он не лицензируется должным образом (по какой-либо причине, например, потому что лицензия действительно отсутствует или из-за коррумпированной установки), компилятор лицензии не будет выдавать фактический лицензионный ключ поток выходного ресурса.


Update: Несколько недель спустя, я до сих пор считаю, что это то, что случилось. Как оказалось, на одной машине, где не было лицензирования, оказалась поврежденная установка ActiveReports. После запуска утилиты удаления ActiveReports получил новую установку и лицензирование теперь работает на обеих машинах.