16

Visual Studio Solutionファイルには、プロジェクトエントリごとに2つのGUIDが含まれています。そのうちの1つはAssemblyInfo.csからのものだと思います

これらがどこから来て、何のために使われているのか、誰かが確かに知っていますか?

4

2 に答える 2

15

どちらのGUIDも、AssemblyInfo.csからのGUIDと同じではありません(つまり、アセンブリ自体のGUIDであり、Visual Studioに関連付けられているのではなく、ビルドの最終製品です)。

したがって、slnファイルの一般的な行の場合(これを表示したい場合は、メモ帳または選択したエディターで.slnを開きます):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}"

2番目のGUIDは、プロジェクト自体の一意のGUIDです。ソリューションファイルはこれを使用して、他の設定をそのプロジェクトにマップします。

GlobalSection(ProjectConfigurationPlatforms) = postSolution
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection

最初のGUIDは、実際にはソリューション自体の一意のGUIDである(私は信じています)。複数のプロジェクトを含むソリューションがある場合、実際には次のようなものが表示されます。

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Composite", "..\CompositeWPF\Source\CAL\Composite\Composite.csproj", "{77138947-1D13-4E22-AEE0-5D0DD046CA34}"
EndProject
于 2008-09-09T22:29:22.287 に答える
6

MSDNによると

[ Project]ステートメントには、一意のプロジェクトGUIDとプロジェクトタイプGUIDが含まれています。この情報は、ソリューションに属する1つまたは複数のプロジェクトファイル、および各プロジェクトに必要なVSPackageを見つけるために環境によって使用されます。プロジェクトGUIDがIVsProjectFactoryに渡されて、プロジェクトに関連する特定のVSPackageが読み込まれ、次にプロジェクトがVSPackageによって読み込まれます。

于 2008-09-09T22:28:44.080 に答える