Visual Studio プロジェクトの設定を共有または再利用するShare or reuse Visual Studio project settings

他のユーザーと共有したり複数のプロジェクトで再利用したりできる設定のカスタム グループを作成するには、プロパティ マネージャー を使用して "プロパティ シート" (.props ファイル) を作成し、再利用または他のユーザーと共有できるようにする各種類のプロジェクトの設定を格納します。To create a custom group of settings that you can share with others or reuse in multiple projects, use Property Manager to create a property sheet (.props file) to store the settings for each kind of project that you want to be able to reuse or share with others. プロパティ シートを使用すると、他の方法で "グローバル" 設定を作成する場合より、はるかにエラーが発生しにくくなります。Using property sheets are far less error-prone than other ways of creating "global" settings.


.user ファイルとそれが問題になる理由.user files and why they are problematic

Visual Studio の過去のバージョンでは、.user ファイル名拡張子を持ち、<userprofile>\AppData\Local\Microsoft\MSBuild\v4.0\ フォルダーにある、グローバル プロパティ シートを使っていました。Past versions of Visual Studio used global property sheets that had a .user file name extension and were located in the <userprofile>\AppData\Local\Microsoft\MSBuild\v4.0\ folder. これらのファイルは、ユーザー単位、コンピューター単位でプロジェクト構成のプロパティを設定するため、現在はお勧めしていません。We no longer recommend these files because they set properties for project configurations on a per-user, per-computer basis. このような "global" 設定は、特にビルド コンピューター上で複数のプラットフォームを対象とする場合にビルドに影響する可能性があります。Such "global" settings can interfere with builds, especially when you are targeting more than one platform on your build computer. たとえば、MFC プロジェクトと Windows Phone プロジェクトの両方を持つ場合は、.user プロパティはいずれか 1 つに対して無効となります。For example, if you have both an MFC project and Windows Phone project, the .user properties would be invalid for one of them. 再利用可能なプロパティ シートは、より柔軟で堅牢です。Reusable property sheets are more flexible and more robust.

現在も .user ファイルは Visual Studio によってインストールされ、プロパティ継承に参加しますが、既定では空です。Although .user files are still installed by Visual Studio and participate in property inheritance, they are empty by default. 最も良い方法は、プロジェクトがすべてのユーザー単位、コンピューター単位の設定に関係なく動作するように、プロパティ マネージャー でそれらへの参照を削除することです。これは、SCC (ソース コード管理) 環境で適切な動作が行われるようにするために重要です。The best practice is to delete the reference to them in Property Manager to ensure that your projects operate independently of any per-user, per-computer settings This is important to ensure correct behavior in a SCC (source code control) environment.

プロパティ マネージャー を表示するには、メニュー バーで、設定に応じて [表示] > [プロパティ マネージャー] または [表示] > [その他のウィンドウ] > [プロパティ マネージャー] を選択します。To display Property Manager, on the menu bar, choose View > Property Manager or View > Other Windows > Property Manager, depending on your settings.

複数のプロジェクトに適用する、よく使用される共通のプロパティ セットがある場合は、プロパティ マネージャー を使ってそれらを再利用可能な "プロパティ シート" ファイルにキャプチャできます。これは慣例により .props ファイル名拡張子を持ちます。If you have a common, frequently used set of properties that you want to apply to multiple projects, you can use Property Manager to capture them in a reusable property sheet file, which by convention has a .props file name extension. プロパティを最初から設定しなくても済むように、そのシートを新しいプロジェクトに適用できます。You can apply the sheet (or sheets) to new projects so that you don't have to set its properties from scratch.

プロパティ マネージャー ショートカット メニューProperty Manager shortcut menu

各構成ノードの下には、その構成に適用される各プロパティ シートのノードが表示されます。Under each configuration node, you see nodes for each property sheet that applies to that configuration. ユーザーがプロジェクトを作成すると、システムはアプリ ウィザードでユーザーが選んだオプションに基づいて値を設定するプロパティ シートを追加します。The system adds property sheets that set values based on options you choose in the app wizard when you create the project. 任意のノードを右クリックして [プロパティ] を選ぶと、そのノードに適用されるプロパティが表示されます。Right-click any node and choose Properties to see the properties that apply to that node. すべてのプロパティ シートは、プロジェクトの "マスター" プロパティ シート (ms.cpp.props) に自動的にインポートされ、プロパティ マネージャーに表示される順序で評価されます。All the property sheets are imported automatically into the project's "master" property sheet (ms.cpp.props) and are evaluated in the order they appear in Property Manager. プロパティ マネージャーで移動することにより、評価順序を変更することができます。You can move them to change the evaluation order. 後で評価されるプロパティ シートにより、前に評価されたシートの値はオーバーライドされます。Property sheets that are evaluated later will override the values in previously-evaluated sheets. .vcxproj ファイル、.props および .targets ファイル、環境変数、コマンド ラインでの評価の順序の詳細については、プロジェクト プロパティの継承に関する記事を参照してください。See Project property inheritance for more information about the order of evaluation in the .vcxproj file, the .props and .targets files, environment variables and the command line.

[新しいプロジェクト プロパティ シートの追加] を選択してから、たとえば MyProps.props プロパティ シートを選ぶと、プロパティ ページ ダイアログ ボックスが表示されます。If you choose Add New Project Property Sheet and then select, for example, the MyProps.props property sheet, a property page dialog box appears. これは MyProps プロパティ シートに適用されることに注意してください。行った変更は、プロジェクト ファイル (.vcxproj) ではなくシートに書き込まれます。Notice that it applies to the MyProps property sheet; any changes you make are written to the sheet, not to the project file (.vcxproj).

.vcxproj ファイルで同じプロパティが直接設定されている場合、プロパティ シートのプロパティはオーバーライドされます。Properties in a property sheet are overridden if the same property is set directly in the .vcxproj file.

必要に応じて何度でもプロパティ シートをインポートできます。You can import a property sheet as often as required. ソリューション内の複数のプロジェクトが同じプロパティ シートから設定を継承することができ、プロジェクトは複数のシートを持つことができます。Multiple projects in a solution can inherit settings from the same property sheet, and a project can have multiple sheets. プロパティ シート自体は別のプロパティ シートから設定を継承できます。A property sheet itself can inherit settings from another property sheet.

また、複数の構成に対して 1 つのプロパティ シートを作成できます。You can also create one property sheet for multiple configurations. これを行うには、各構成のプロパティ シートを作成し、そのうちの 1 つのショートカット メニューを開き、 [既存のプロパティ シートの追加] を選んで、他のシートを追加します。To do this, create a property sheet for each configuration, open the shortcut menu for one of them, choose Add Existing Property Sheet, and then add the other sheets. ただし、1 つの共通のプロパティ シートを使用する場合は、プロパティを設定するときにシートが適用されるすべての構成セットが取得されることや、IDE では指定されたプロパティ シートから継承されるプロジェクトまたは他のプロパティ シートが表示されないことに注意してください。However, if you use one common property sheet, be aware that when you set a property, it gets set for all configurations that the sheet applies to, and that the IDE doesn't show which projects or other property sheets are inheriting from a given property sheet.

多くのプロジェクトを持つ大規模なソリューションでは、ソリューション レベルでプロパティ シートを作成すると便利な場合があります。In large solutions that will have many projects, it can be useful to create a property sheet at the solution level. ソリューションにプロジェクトを追加する場合、プロジェクトにそのプロパティ シートを追加するには、プロパティ マネージャー を使います。When you add a project to the solution, use Property Manager to add that property sheet to the project. プロジェクト レベルでの必要に応じて、新規プロパティ シートを追加してプロジェクト固有の値を設定できます。If required at the project level, you can add a new property sheet to set project-specific values.


既定では、.props ファイルはプロジェクト項目として作成されていないため、ソース管理に含まれません。A .props file by default does not participate in source control because it isn't created as a project item. ソース管理に含める場合は、ソリューション項目として手動でファイルを追加できます。You can manually add the file as a solution item if you want to include it in source control.

プロパティ シートを作成するにはTo create a property sheet

  1. メニュー バーで、 [表示] > [プロパティ マネージャー] または [表示] > [その他のウィンドウ] > [プロパティ マネージャー] を選択します。On the menu bar, choose View > Property Manager or View > Other Windows > Property Manager. プロパティ マネージャー が開きます。The Property Manager opens.

  2. プロパティ シートのスコープを定義するには、適用する項目を選択します。To define the scope of the property sheet, select the item to which it applies. これは、特定の構成または別のプロパティ シートです。This can be a particular configuration, or another property sheet. この項目のショートカット メニューを開き、 [新しいプロジェクト プロパティ シートの追加] を選びます。Open the shortcut menu for this item and then choose Add New Project Property Sheet. 名前と場所を指定します。Specify a name and location.

  3. プロパティ マネージャー で新しいプロパティ シートを開き、含めるプロパティを設定します。In Property Manager, open the new property sheet and then set the properties you want to include.