在 C# 中以编程方式获取 msbuild 的 SolutionName

Programmatically get msbuild's SolutionName in c#

我的项目文件有这个:

<PropertyGroup>
  <SolutionName>Foo</SolutionName>
  <AssemblyName>$(SolutionName).$(MSBuildProjectName)</AssemblyName>
</PropertyGroup>

我可以使用 GetType().Assembly.GetName().Name.

以编程方式获取 AssemblyName

是否可以得到SolutionName

不 - 不是真的。解决方案文件只是 visual studio 的组织。它没有嵌入内置的二进制文件中。

作为解决方法,您可以做的是在 msbuild 中获取解决方案名称,然后将其写入文件。

参见: https://docs.microsoft.com/en-us/cpp/build/reference/common-macros-for-build-commands-and-properties?view=msvc-160

$(SolutionName) 解决方案的基本名称。仅在 IDE.

中构建解决方案时定义