質問

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

これらがどこから来たのか、そして何に使われるのかを正確に知っている人はいますか?

役に立ちましたか?

解決

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

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

他のヒント

MSDN によると:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top