【问题标题】:dotnet-gitversion "ShortSha" /updateassemblyinfo : Cannot find the .git directorydotnet-gitversion \"ShortSha\" /updateassemblyinfo : 找不到 .git 目录
【发布时间】:2022-06-03 18:45:09
【问题描述】:

正如this previous question 中所述,我想将我的源代码的提交哈希添加到我的可执行文件或 DLL 中。

为此,我想使用以下命令:

dotnet-gitversion \"ShortSha\" /updateassemblyinfo

我已经创建了一个FixedAssemblyInfo.cs 以保护我的[assembly] 标记的其余部分,但是现在当我尝试运行上述命令时,我收到错误消息:

Cannot find the .git directory

我以不同的方式启动了该命令:

  • 在我的 Visual Studio 解决方案的主目录中,其中存在 .git 目录。
  • 在我的 Visual Studio 项目的子目录中,.git 目录所在目录下的一些子目录级别。
  • 通常.git 目录是隐藏的。我已取消选中该目录详细信息中的Hidden 复选框,但没有运气。
  • 我已从命令提示符、命令提示符、以管理员身份运行以及从“VS 2017 开发人员命令提示符”启动dotnet-gitversion

现在,您可以猜到,将dotnet-gitversion \"ShortSha\" /updateassemblyinfo 命令添加为预构建事件是我的想法,但如果我什至不能将其作为简单命令运行,我该如何将其作为预构建事件启动?构建事件?

供您参考,完整的预构建事件如下所示:

cd $(ProjectDir)
dotnet-gitversion \"ShortSha\" /updateassemblyinfo

有人有想法吗?

哦,在我忘记之前:我想要实现的只是创建AssemblyInfo.cs 文件,其中包含(至少)我的源代码的\"ShortSha\"。最重要的是,我希望将它作为预构建事件,以便在每次编译我的项目时获得这些信息。

非常感谢提前

    标签: c# git gitversion


    【解决方案1】:

    如果我正确阅读了the docdotnet-gitversion 将其第一个参数解释为项目根目录的路径。 ShortSha 不符合要求。

    您可能想要使用/showvariable 选项,它表示还要设置/output json

    【讨论】:

    • 快到了:我刚刚发布了dotnet-gitversion . /showvariable "ShortSha" /updateassemblyinfo,它确实给出了正确的“ShortSha”。添加诸如/output file/output json 之类的内容也会产生预期的行为,但dotnet-gitversion . /updateassemblyinfo /showvariable "ShortSha" 仍然不起作用:AssemblyInfo.cs 仅在它已经存在并且不包含ShortShaSha 时才会更新,这正是我在AssemblyInfo.cs 中寻找的。
    • 这一定是个玩笑:我已经清空了我的AssemblyInfo.cs 文件并运行了dotnet-gitversion . /updateassemblyinfo。结果,我在屏幕上看到了整个 JSON,我的 AssemblyInfo.cs 得到了更新……但只有“AssemblyVersion”、“AssemblyFileVersion”和“AssemblyInformationalVersion”。哦,我明白了:我需要配置我的gitversion,使“AssemblyInformationalVersion”“仅”包含我想要的信息(如ShortSha)。你知道怎么做那个配置吗?
    • 几乎就在那里:我刚刚在我的项目目录(我的 GIT 目录的一个子目录)中运行了dotnet-gitversion init,现在我有一个GitVersion.yml 文件,但我不知道如何配置它们以获得“信息”事情对了。我会相应地编辑我的问题。
    • F...它,这不再诚实了:您已经解决了我的问题(如何避免“无法处理 .git 目录”错误消息),我现在将检查如何配置 GitVersion.yml 以获得更好的AssemblyInformationalVersion 我的程序集文件中的条目。
    • 与此同时,我找到了一种配置我的GitVersion.yml 文件的方法。因为你帮了我很多,我给了你赏金。不幸的是,我的问题还没有完全解决,我现在正在关注这个 SuperUser 问题以获得完整的理解:superuser.com/questions/1724553/…
    猜你喜欢
    • 1970-01-01
    • 2022-02-21
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 2021-02-22
    相关资源
    最近更新 更多