我使用以下代码在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更改为其他内容?
谢谢。
答案 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