2013-08-05 62 views
10

私たちのプロジェクトでは、サードパーティのコントロールを使用しています。ほとんどの場合、デザインビューを持つファイルをダブルクリックするたびに、Visual Studioはヒーロー的な努力でデザイナーを呼び出そうとしますが、何らかの応答がないと、license.licxファイルが私たちのソリューションに配信されます。これはソース管理を不必要に妨害します。ファイルの追加によってcsprojも変更され、元のコードファイルとdesigner.csの両方がチェックアウトされます(変更はありません)。Visual Studioでlicense.licxを作成できないようにするには

  1. 私は、コードを見る(右クリックして、コードを表示したい)、私はデザイナーのビューを見たいと思わない。
  2. 私は不必要な変更を元に戻す必要があり、時間がかかります(私たちのソリューションは大量です)、Visual Studioはcsprojが変更されて以来、シバン全体をリロードするので、再び反応しません。
  3. 私がダブルクリックすると、すぐに私がやったことを理解できますが、その時はすでに遅すぎます。時計が磨き始めます。

誰かがそのlicxの追加を無効にする方法を知っている場合は、教えてください。 FYI:関連するサードパーティのライブラリは、DevExpress WinFormsとIdeaBlade DevForce Classic(DevExpressと一部統合されています)です。私はVS 2012を使用しています。 当社の製品はサードパーティのライブラリではなく、エンドユーザー向けの製品です。

明確化:私たちは開発環境について話しています。 How does the Licenses.licx based .Net component licensing model work?を参照してください。ソース管理のままにしておくことはお勧めしません。私はそれについて議論したくない。 Visual Studioが常に作成しようとするのを防ぐ方法に焦点を当てましょう。

+1

皆さん、私の動機が間違っていると思ってもライセンスを削除してはいけません。それについて話しましょう。このトピックの結論は、私と同じ靴です。ありがとうございました! –

+0

私は怒りの顔を削除しました。それは面白くないと思う人もいるだろうから。 –

+0

裏向きです。それがビルドの入力の一部であるため、ソースコントロールの一部として管理しないのはなぜですか?ソース管理に他のリソースを含めることで苦労しないと確信していますか? –

答えて

10

.licxファイルを削除するポストビルドイベントを作成することができます。私たちはこのチームの煩わしさに対処しました。手動で除外または削除するのとは別に、ポストビルドイベントが最善の策です。 Windowsフォームを開くたびに、そのフォームがサードパーティの.dllのいずれかを参照または使用している場合は、ファイルが再度追加されます。

コンソールから、またはプロジェクトを右クリックし、[プロパティ] - > [ビルドイベント]を選択すると、ビルド前およびビルド後のイベントを指定できます。お役に立てれば。

+0

本当にあなたの答えに感謝します。ほとんどの場合、licxの作成を切り替えるためのVisual Studioにはスイッチがないので、あなたの答えは良い解決策のようです。実際には、そのような不正なlicxが作成された場合に失敗し、それが誤ってコミットされるのを防ぐユニットテストがあります。サンプルポストビルドスクリプトがありますか?あなたはポストビルドスクリプトでソリューションを操作するために何を使用しますか? PowerShell + EnvDteなど何か? [StudioShell](https://studioshell.codeplex.com/)? –

+0

ポストビルドイベントに行って、次のようなものを貼り付けることができます... del "$(SolutionDir)Project \ folder \ license.licx"それを処理する必要があります。 – captray

+2

licenses.licxを削除すると、「ファイル... \ licenses.licxが見つかりませんでした」というエラーが発生します。代わりに、このpre-buildイベントを追加して、空のlicenses.licxを作成(または上書き)することができます:copy/y NUL $(ProjectDir)Properties \ licenses.licx> NUL –

-2

そのlicense.licxは重要です。あなたは本当に、第三者からライセンスされたコンポーネントを使用するプロジェクトでそれを望んでいます。第三者コンポーネントを使用しない場合、licences.licxファイルは追加されません。

+1

なぜlicense.licxが必要ですか?誤ってファイルをダブルクリックしないと、それは作成されていません。開発チームで問題を引き起こす可能性はありますか?たとえば、John Doeは何か他のものをダブルクリックした後、別のコンテンツを生成します。私はボンネットの下にいくつかの暗号があると思います。 –

+0

(John Doeは私と同じソフトウェアで動作しますが、私はソース管理でlicxを望んでいません)リリースを製造する際に必要となるかもしれません。私たちのサードパーティベンダとのライセンス契約違反ではないことを願っています。 –

+0

短い質問は、なぜ私がそれを持っていなければならないのですか?私は説明が必要です。 –

2

Lc.exeツールを使用してコンパイル済みのライセンスを使用しており、licenses.licxがビルドサーバーで競合するのを防ぐために、この問題の解決方法を探している人は、csprojファイルを編集して、この中

<EmbeddedResource Include="Properties\licenses.licx" /> 

:あなたのポイント#1の

<ItemGroup Condition=" '$(Configuration)' != 'Release' " > <EmbeddedResource Include="Properties\licenses.licx" /> </ItemGroup>

+1

有望そうです。私はもうこの状況ではない。 –

2

、あなたがデザイナーを開いてから、ダブルクリックを防止するためではなく、デフォルトでは、コードエディタを開くことができます。開く」を選択し、フォーム

  • を持っては.csファイルに

    • 右クリック...:

      あなたはこれを行うことができます『

    • クリックは(またはVB)『デフォルト』

    あなたは、後で戻ってそれを変更するのと同じ手順に従うが、選択したい場合は

  • OK「CSHARPフォームとして設定CSHARPエディタを」
  • を選択して』エディタ "

  • +1

    非常に実用的なアイデア! –

    関連する問題