在MSBuild中读取C#自定义属性

在MSBuild中读取C#自定义属性,c#,.net,msbuild,custom-attributes,C#,.net,Msbuild,Custom Attributes,我在AssemblyInfo.cs文件中为C#程序集定义了一个自定义属性,我希望在MSBuild过程中读取此自定义属性的值。我已经有了一个有点黑的解决方案,它读取AssemblyInfo.cs文件并通过RegEx获取属性值,但这有一些缺点,例如属性被注释掉了,但仍然与RegEx模式匹配 我看到有一个AssemblyInfo MSBuild任务,但它似乎只支持从dll读取非自定义属性。是否有某种方法可以直接从dll中提取自定义属性值?我也愿意使用比解析AssemblyInfo.cs文件更简单的任何

我在AssemblyInfo.cs文件中为C#程序集定义了一个自定义属性,我希望在MSBuild过程中读取此自定义属性的值。我已经有了一个有点黑的解决方案,它读取AssemblyInfo.cs文件并通过RegEx获取属性值,但这有一些缺点,例如属性被注释掉了,但仍然与RegEx模式匹配


我看到有一个AssemblyInfo MSBuild任务,但它似乎只支持从dll读取非自定义属性。是否有某种方法可以直接从dll中提取自定义属性值?我也愿意使用比解析AssemblyInfo.cs文件更简单的任何其他解决方案。我还希望避免编写自己的自定义任务来执行此操作,因为我们没有其他自定义任务,并且使用带有一个任务的自定义任务程序集似乎有些过分。

自定义属性是在您试图从中提取的同一程序集中定义的吗?是,包含自定义属性的AssemblyInfo.cs是同一个程序集的一部分。这使问题稍微困难一些,因为您需要使用反射来提取属性的值。关于自定义任务,您可以使用内联任务来避免自定义任务程序集。这对我的情况适用。我们已经在使用反射来读取其他地方的属性,所以不需要做太多的工作,尽管它不会很漂亮=)。