更改ironpython .dll程序集的版本信息

时间:2016-01-28 22:55:41

标签: dll ironpython

我使用以下代码在ironpython中编译了一个.dll文件:

String json = { and : [{key: domain, value: cricket}, {key : STAT_CDE,value : 15}]}, { and : [{key: domain, value: football}, {key : STAT_CDE,value : 10}]}

它基本上是compiles the .py file to .dll。 唯一的问题是它创建的文件没有关于公司,语言,文件版本等的信息。实际上文件版本始终是:0.0.0.0。

我想知道是否有办法至少改变文件版本(将其更改为0.0.0.0以外的版本)。我用Google搜索并在stackoverflow上找到了similar topic。 我尝试了三种方法:

1)使用Visual Studio(File-> Open-> find .dll,Edit-> Add Resource-> Version click New。在新版本标签中,更改FILEVERSION和PRODUCTVERSION)

2)另一个使用Change version 2012 application

3)第三个使用:Simple Version Resource Tool for Windows 1.0.10

他们都没有奏效。 出于某种原因,看起来像使用ironpython创建的.dll程序集的结构与使用VB或C#创建的.NET不同。

有谁知道如何将文件版本从0.0.0.0更改为其他内容?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用打包到IronPython中的pyc.py文件将文件编译为.dll文件。该文件位于IronPython 2.7 \ Tools \ Scripts。

目录中

如果我们打开pyc.py进行编辑,你会看到它可以做的不同事情。

pyc: The Command-Line Python Compiler

Usage: ipy.exe pyc.py [options] file [file ...]

Options:
/out:output_file                          Output file name (default is main_file.<extenstion>)
    /target:dll                               Compile only into dll.  Default
    /target:exe                               Generate console executable stub for startup in addition to dll.
    /target:winexe                            Generate windows executable stub for startup in addition to dll.
    @<file>                                   Specifies a response file to be parsed for input files and command line options (one per line)
    /file_version:<version>                   Set the file/assembly version
    /? /h                                     This message    

EXE/WinEXE specific options:
    /main:main_file.py                        Main file of the project (module to be executed first)
    /platform:x86                             Compile for x86 only
    /platform:x64                             Compile for x64 only
    /embed                                    Embeds the generated DLL as a resource into the executable which is loaded at runtime
    /standalone                               Embeds the IronPython assemblies into the stub executable.
    /mta                                      Set MTAThreadAttribute on Main instead of STAThreadAttribute, only valid for /target:winexe
    /file_info_product:<name>                 Set product name in executable meta information
    /file_info_product_version:<version>      Set product version in executable meta information
    /file_info_company:<name>                 Set company name in executable meta information
    /file_info_copyright:<info>               Set copyright information in executable meta information
    /file_info_trademark:<info>               Set trademark information in executable meta information

Example:
    ipy.exe pyc.py /main:Program.py Form.py /target:winexe

我个人喜欢做的一件事就是将pyc.py从Scripts文件夹移到IronPython文件夹以及我的python文件。

假设您也这样做,您将以管理员身份打开命令提示符并导航到IronPython文件夹。

cd "Program Files (x86)\IronPython 2.7"

然后你想将你的python文件编译为.dll并使用pyc.py设置文件版本。为此,您需要输入:

ipy.exe pyc.py /main:example.py /target:dll /file_version:0.0.0.1

如果您想要添加公司名称和其他项目,您只需将这些选项传递给pyc.py脚本即可。

ipy.exe pyc.py /main:Program.py Form.py /target:winexe /file_info_company:Company