【问题标题】:How to pick up the latest version AssemblyInfo.cs as modified by the pre-build event?如何获取预构建事件修改的最新版本 AssemblyInfo.cs?
【发布时间】:2011-06-30 14:13:22
【问题描述】:

我目前正在玩 VS2010 中的构建前和构建后事件,试图将我的 SVN 版本号放入 AssemblyInfo.cs 文件中,然后编译到我的构建 dll 中。

在预构建中,我运行一个更新 AssemblyInfo.cs 文件的脚本,在我的构建后步骤中,我运行一个脚本将其重置为零。

我想这样做是因为如果我离开最新版本,那么 SVN 会将此视为更改,它将被提交,这会更新 SVN 版本号并因此导致另一个更改;这有点递归。

我遇到的问题是构建选择了文件的原始版本,而不是预构建步骤更新的版本。

因此:

如果(作为测试)我手动将文件中的版本号设置为:

[assembly:AssemblyVersion("1.0.0.123")]

然后预构建将其更新为:

[assembly: AssemblyVersion("1.0.0.456")]

然后后期构建将其更新为:

[assembly: AssemblyVersion("1.0.0.0")]

当我查看构建的 dll 时,版本是 1.0.0.123

我已经在构建开始之前检查了预构建步骤是否完成 - 但即使我强制等待很长时间(通过调用 notepad.exe 或其他方式)VS2010 仍然无法获取更新的文件。

您只需将 notepad.exe 放入预构建命令即可看到此行为 - 然后在记事本运行时;去手动更改 AssemblyInfo.cs 文件。除非您关闭记事本,否则构建不会开始 - 但是一旦您关闭记事本,它将使用文件的原始版本进行构建。

我是否在预构建应该工作的方式中遗漏了什么?有什么方法可以强制构建获取并使用更新的文件?

任何线索表示赞赏:)

【问题讨论】:

    标签: visual-studio prebuild pre-build-event


    【解决方案1】:

    事实证明,将计算机关闭几天并重新使用它可以解决此问题...
    我想重新启动计算机可能足以让它松动。回到:您是否尝试过将其关闭并再次打开。 叹息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 2013-08-11
      • 1970-01-01
      • 2013-01-24
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多