【问题标题】:Programmatically get msbuild's SolutionName in c#在 c# 中以编程方式获取 msbuild 的 SolutionName
【发布时间】:2021-07-12 07:02:03
【问题描述】:

我的项目文件有这个:

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

我可以使用GetType().Assembly.GetName().Name 以编程方式获取AssemblyName

是否可以得到SolutionName

【问题讨论】:

  • 为什么不简单地将名称写为项目中的字符串 Resource 并通过“Properties.SolutionName”访问它(假设您将资源命名为“SolutionName”)?当然,您必须手动维护此资源,但解决方案的名称通常不会经常更改。对于多项目解决方案,您可以将名称放在核心项目中并将资源公开,以便从解决方案中的其他项目访问

标签: c# .net msbuild


【解决方案1】:

不 - 不是真的。解决方案文件只是 Visual Studio 的一个组织。它没有嵌入到构建的二进制文件中。

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

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

$(SolutionName) 解决方案的基本名称。仅在 IDE 中构建解决方案时定义。

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多