【问题标题】:AssemblyInfo patching for native DLLs本机 DLL 的 AssemblyInfo 修补程序
【发布时间】:2017-06-21 19:33:24
【问题描述】:

有没有办法用内部版本号修补本机 DLL(非托管)? 因此,当我右键单击 dll 并选择属性时,我可以在详细信息选项卡中看到“生产版本”作为内部版本号?或者可能有任何其他属性设置为 appveyor 生成的内部版本号?

我确实打开了 ASsemblyInfo 修补程序,但本机 DLL(非托管)未使用内部版本号进行修补,所以我怀疑此 AssemblyInfo 仅用于托管程序集?...

我需要的是 appveyor 在每次构建时生成的内部版本号,以便在运行时能够“以某种方式”访问本机 DLL 中定义的方法,以便能够使用此内部版本号。

你能帮忙吗? 谢谢

【问题讨论】:

    标签: dll build native appveyor build-numbers


    【解决方案1】:

    AssemblyInfo.cs 用于托管程序集。对于本机 dll,我发现 this 有用的讨论。讨论中有很多解决方案,我喜欢基于rcedit 的解决方案,因为它很简单。您可以通过以下简单命令使用它:

    appveyor downloadfile "https://github.com/electron/rcedit/releases/download/v0.1.0/rcedit.exe"
    rcedit.exe <path_to_native_dll> --set-product-version %appveyor_build_version%
    

    【讨论】:

    • 实际上 rcedit.exe 对我来说失败了,一个通用错误“rcedit 致命错误:致命错误:无法更改文件版本”......所以我选择了 verpatch.exe,它完成了同样的工作无论如何你指出的线程中提到的警告:)
    • 后来发现:verpatch 适用于我的开发盒上我的 DLL 的 x64 和 x86 版本但是在 apveyor 构建项目中它仅适用于 x64 并且它对 x86 dll 没有任何作用——也没有错误!任何提示可能会发生什么?我可以在 appveyor 日志中看到 verpatch 命令正在执行,没有错误,并且 dll 没有以某种方式被替换,最后它没有版本标记;对于 x64,在所有情况下一切正常。请问有什么线索吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    相关资源
    最近更新 更多