web-dev-qa-db-ja.com

Visual Studio:プロジェクトのプロパティをコピーして別のプロジェクトで使用できますか?

Visual Studioプロジェクトで現在のCファイルをコンパイルするために、matlab、opencvなどのライブラリをいくつか追加しました。

私の今後のプロジェクトはすべて同じセットアップ/プロパティを必要とします。各プロジェクトのプロパティを個別に設定する必要がありますか、それともすべてに適用するために何かを行うことができますか?

66
Louis

プロパティシートを使用してみてください。これらは、複数のプロジェクトに継承できる単一のプロパティファイルを作成できます。

  1. [表示]> [その他のウィンドウ]> [プロパティマネージャー]を使用して、プロパティマネージャーを表示します。プロジェクトと構成が表示されます。

  2. 構成を右クリックし、[新しいプロジェクトプロパティシートを追加...]を選択します。名前を付けて、すべてのプロジェクトで機能する場所を選択できます。

  3. 作成したら、ビルド構成と同じようにプロパティを編集できます。

  4. そのプロパティシートを他のプロジェクトの基礎として使用するには、構成またはプロジェクトを右クリックし、[既存のプロパティシートを追加...]を選択します。元のシートを保存した場所を参照すると、継承されます。

元のシートへの変更は、オーバーライドされない限り、それを継承するプロジェクトに適用されます。チェーンの上位のプロパティに移動すると、オーバーライドするプロパティの値は太字になります。ベースシートの値を常に使用するようにするには、必要に応じて「親またはプロジェクトのデフォルトから継承」オプションを使用します。

87
AaronMK

私はAtmelStudio 6.1を使用していますが、これはVisual Studio 2010に基づいています(私は信じています)が、見つけることができるプロパティマネージャーがありません。だから、私が使用するハックシステムは次のとおりです。

  1. 構成を変更するプロジェクトを閉じます(または少なくともコンテキストメニューからアンロードします)。
  2. 任意のテキストエディターで.cprojファイル(XML)を開きます(VSはうまく機能します)。
  3. 場合によってはそれ以外のバックアップコピーを作成し、
  4. 構成データをコピーするプロジェクトの.cprojファイルを開き、
  5. 必要な構成データを探します。構成はPropertyGroupタグ内にあります。たとえば、私の場合は次のようになります

    <PropertyGroup Condition=" '$(Configuration)' == 'Preprocess only' "> 
    

    「プリプロセスのみ」という名前の構成の場合。そのタグの先頭から対応するタグの末尾までコピーします

    </PropertyGroup> 
    

    タグ。

  6. ブロックを目的の.cprojに、他の直後に貼り付けます

    </PropertyGroup>
    

    タグ。このファイルで構成の名前が一意であることを確認してください。セーブ。

終わった。 VSで通常どおりプロジェクトを開くと、追加した構成を選択できるようになります。

4
hmijail

Visual Studio 2010+では、 プロジェクトテンプレート を作成できます。

テンプレート作成ウィザードでVisual Studioにテンプレートを自動的に追加することを選択した場合、新しいプロジェクトを作成/追加すると、テンプレートが表示されます(Visual Studioの再起動後)。このテンプレートで作成されたプロジェクトには、同じプロジェクトプロパティがあります!

テンプレートにソースコードファイルを追加する最も簡単な方法は、solution-Explorerのソースコードファイルを再配置して、(フォルダーの下ではなく)ルートに配置することです。その後、テンプレートを生成します。

どうして?ファイルをデフォルトのソースコードソリューションエクスプローラーフォルダー(ファイルエクスプローラーではなく、.project.filtersラベルではない)に配置すると、ソースファイルをテンプレートにコピーできない場合があります。「ドキュメントを開くことができません。テンプレートを使用しようとすると、テンプレートに必要なファイルがエクスプローラーに表示されなくなります。

ソリューションエクスプローラーフォルダーが必要な場合は、テンプレートフォルダーを解凍し、変更を加えてから再度解凍することにより、手動でテンプレートに追加する必要があります。

たとえば、テンプレートフォルダーにテンプレートに含めるソースファイルをそのままコピーして貼り付け、.vstemplateファイルを編集します。 テンプレート編集のM $ドキュメント

<TemplateContent>
<!-- put new file references here and/or in your .vcxproj .vcxproj.filters --> 
 TargetFileName="HelloWorld.cl">HelloWorld.cl</ProjectItem>
      <ProjectItem ReplaceParameters="false" 
</TemplateContent>

関連する質問:

作成したVSテンプレートをどのように使用しますか?

Visual Studioで作成したテンプレートを読み込むにはどうすればよいですか?

Visual Studioプロジェクトのコピー方法

さまざまなGUID sとファイル名が重複する可能性があり、バグが発生する可能性があるため、プロジェクトおよびソリューション全体を単純にコピーして貼り付けることはお勧めできません。

2
MrPickles7

MSVS 2017の場合、@ AaronMKが言及したプロセスは機能しません。代わりに、次を実行します。

  1. 表示->他のウィンドウ->プロパティマネージャー
  2. 新しいプロパティシートを追加します。
  3. 必要なオプションを編集します。
  4. 覚えやすいように適切な名前を付けてください。
  5. それを右クリックし、「{myPropertySheet}を保存」を押します
  6. デフォルトのプロパティシートと並べて配置するのが賢明です。必要に応じていつでも追加できます(プロパティマネージャ->既存のプロパティシートの追加->その場所を参照)。このディレクトリは:C:\Users\{myUsername}\AppData\Local\Microsoft\MSBuild\v4.0

または、デフォルトのプロパティシートを編集して、デフォルトで使用できます。あなたが混乱した場合にフォールバックオプションを提供するので、私はそれをアドバイスしません。したがって、デフォルトのファイルを編集する場合は、最初にバックアップを作成してください。

1
Nikos