【问题标题】:Is there a way to set IsPreRelease in a .NET assembly?有没有办法在 .NET 程序集中设置 IsPreRelease?
【发布时间】:2012-07-15 03:33:46
【问题描述】:

FileVersionInfo class 有一个IsPreRelease property

有没有办法通过 AssemblyInfo 或我的 .NET 程序集项目中的其他内容来让该属性在生成的 .dll 文件中返回 true?

【问题讨论】:

标签: .net .net-assembly


【解决方案1】:

如果您在项目/解决方案中特别需要它,那么经典路径是创建资源脚本 (.rc) 文件。这是一种朴素、邋遢的格式,但可行。缺点是您需要先获得所有正确的设置,然后再手动维护它们。

如果您可以在构建后手动单击,最简单的方法是使用 ResEdit(或等效项),并将 VS_FF_PRERELEASE 添加到 FileFlags 字段中。

注意,FileFlagsMask 字段应该已经具有预发布标志或与其他一批标志一起 - 这是必要的,但还不够。

另外,您可以使用 resedit 非常简单地生成一个起始 .rc 文件:

resedit -convert my.dll my.rc

如果您需要自动构建过程,那么很可能有一个实用程序可以在命令行上进行有针对性的修改,然后您可以将其添加为项目的构建后步骤构建有问题的 .dll。

祝你好运!

【讨论】:

  • 目前我什至无法测试它(坦率地说,我什至不确定我是否记得我需要它用于哪个项目),但它看起来很可靠。这里有一个关于如何在 C# 项目中使用 .rc 文件的有用答案:stackoverflow.com/questions/4390463/…
【解决方案2】:

我会尝试使用resourcelib。这是一个用于读写资源的库,包括Version (RT_VERSION)

更新

我不确定您是否真的看过源代码。 但是在resourcelib 中有一个名为FixedFileInfo.cs 的类,它代表VS_FIXEDFILEINFO。在您可以阅读的文档中,IsPreRelease 是标志 dwFileFlags 的值。

【讨论】:

  • 它看起来不像让你设置IsPreRelease虽然
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2019-07-07
相关资源
最近更新 更多