.NETのライセンスコンパイラ(LC.EXE)は、ライセンスの内容を無視しているようです。あるマシンでは、もう一方のマシンでは無視していません。なんで?
-
27-09-2019 - |
質問
背景情報: VS2008で非常にシンプルな.NETソリューションを設定しました。これには、プレビューウィンドウにActiveReportsレポートを表示するのに十分なコードが含まれています。 ActiveReportsコンポーネントはを使用します licenses.licx
適切にライセンスされているかどうかを決定するメカニズム。有効なライセンスキーが見つからない場合、レポートのプレビューに顕著なメッセージが表示されます。 「これは評価コピーです[何とか何とか何とか]。」
私の問題: 同じバージョンのVS2008とActiveReportsがインストールされている2つのコンピューターがあります。インストールごとに有効なライセンスがあります。 1つのマシンでソリューションを構築すると、評価バナーメッセージなしでレポートプレビューが表示されますが、もう1つのソリューションは、評価メッセージを表示するアプリケーションにまったく同じソリューションをコンパイルします。
私がこれまでに見つけたこと: 使用 Reflector.net 2番目のマシン(評価メッセージが表示される)で、ライセンスコンパイラ(LC.EXE
)どういうわけか、activeReportsライセンスラインを無視しているようです licenses.licx
. 。ただし、エラーや警告メッセージはまったく表示されません。
⇒そのため、この質問は次のとおりです。 どのような状況の下で LC.EXE
テキストの行を無視することにします licenses.licx
出力を生成するとき MyApplication.licenses
組み込みリソース?
PS: 問題は いいえ 削除することで解決します licenses.licx
ファイルしてから、ソリューションにダミーレポートを一時的に追加することにより再作成します。このトリックはです よく言及されています 同様のライセンスの問題については、ここでは機能しません。 licenses.licx
ファイルの内容は有効であるようです。
PPS: これがスタックオーバーフローの質問なのか、それともスーパーユーザー向けの質問なのかは完全にはわかりません。
解決
わかりました - 私は確信が持てませんが、この問題の原因を疑っています。
私はそれを疑います LC.EXE
リストされているすべてのコントロールをプローブします licenses.licx
そのファイルをコンパイルするとき。その調査中に、リストされているコントロールのいずれかが適切にライセンスされていないと判断した場合(何らかの理由で、たとえば、ライセンスが実際に欠落している、または腐敗したインストールが原因であるため)、ライセンスコンパイラは実際のライセンスキーを発しません。出力リソースストリーム。
アップデート: 数週間後、私はこれが起こったことだとまだ信じています。判明したように、ライセンスが失敗した1つのマシンは、ActiveReportsの腐敗したインストールがあることが判明しました。削除ユーティリティを実行した後、ActionEREPORTSは新しいインストールを取得し、ライセンスは両方のマシンで機能します。