更改 ironpython .dll 程序集的版本信息
Changing the version information of ironpython .dll assembly
我在ironpython中编译了一个.dll文件,代码如下:
import clr
clr.CompileModules('C:/example.dll', 'C:/example.py')
本质上是compiles the .py file to .dll。
唯一的问题是它创建的文件没有关于公司、语言、文件版本等的信息。事实上,文件版本始终是:0.0.0.0.
我想知道是否有办法至少更改文件版本(将其更改为 0.0.0.0 以外的版本)。我在 Whosebug 上用谷歌搜索并在此处找到 similar topic。
我尝试了三种方法:
1) 一个Visual Studio(文件->打开-> 查找.dll,编辑->添加资源->版本单击新建。在新的版本选项卡中,更改 FILEVERSION 和 PRODUCTVERSION)
2) 另一个使用 Change version 2012 application
3) 第三个使用:Simple Version Resource Tool for Windows 1.0.10
None 他们成功了。
由于某种原因,使用 ironpython 创建的 .dll 程序集的结构看起来与使用 VB 或 C# 创建的 .NET 程序集的结构不同。
有谁知道如何将文件版本从 0.0.0.0 更改为其他版本?
谢谢。
您可以使用打包到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
我在ironpython中编译了一个.dll文件,代码如下:
import clr
clr.CompileModules('C:/example.dll', 'C:/example.py')
本质上是compiles the .py file to .dll。 唯一的问题是它创建的文件没有关于公司、语言、文件版本等的信息。事实上,文件版本始终是:0.0.0.0.
我想知道是否有办法至少更改文件版本(将其更改为 0.0.0.0 以外的版本)。我在 Whosebug 上用谷歌搜索并在此处找到 similar topic。 我尝试了三种方法:
1) 一个Visual Studio(文件->打开-> 查找.dll,编辑->添加资源->版本单击新建。在新的版本选项卡中,更改 FILEVERSION 和 PRODUCTVERSION)
2) 另一个使用 Change version 2012 application
3) 第三个使用:Simple Version Resource Tool for Windows 1.0.10
None 他们成功了。 由于某种原因,使用 ironpython 创建的 .dll 程序集的结构看起来与使用 VB 或 C# 创建的 .NET 程序集的结构不同。
有谁知道如何将文件版本从 0.0.0.0 更改为其他版本?
谢谢。
您可以使用打包到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