簡體   English   中英

[cx_Freeze Q]:如何從非標准構建目錄構建 MSI?

[英][cx_Freeze Q]: How to build MSI from non-standard build directory?

我試圖讓我的構建過程從非標准構建目錄構建。 項目存儲在c:\users\user\onedrive\dev\project中。 這些是我在 setup.py 中的構建選項:

build_options = {
    'packages': ["pyfiglet"],
    'excludes': ["scipy", "PIL", "tkinter", "test"],
    # use this temp dir, so onedrive does not go crazy and lock files!
    'build_exe': f"c:/Temp/{DESCRIPTION.replace(' ','_')}-build", 
}

但現在我很難定義 bdist_msi_options 塊:

bdist_msi_options = {
    'upgrade_code': '{1}',
    'add_to_path': False,
    'install_icon': 'icon.ico',
    'skip_build': True, # so I can sign the exe before MSI'ing
    'initial_target_dir': r'[ProgramFilesFolder]\{0}\{1}'.format(
        COMPANY, DESCRIPTION),
}

我沒有看到任何選項來定義 MSI-build 將從c:\temp\獲取預構建的 .exe。

最后是 main():

executables = [
    Executable(
        SCRIPT_FILE, # something.py
        base='Console',
        target_name=OUT_FILENAME,
        copyright=COPYRIGHT,
        icon="icon.ico",
        shortcut_name=DESCRIPTION,
        shortcut_dir="DesktopFolder",
    )
]

setup(name='HeightStorage',
      version=cfg.version,
      description=LONG_DESCRIPTION,
      options={
          'build_exe': build_options,
          'bdist_msi': bdist_msi_options,
      },
      executables=executables)

任何提示表示贊賞。

嘗試在build選項中設置構建目錄並使用bdist_dir選項的bdist_msi選項:

build_dir = f"c:/Temp/{DESCRIPTION.replace(' ','_')}-build"  # or whatever you like
bdist_dir = build_dir  # define here a new directory if you want to keep build_dir
build_options = {
    ...
    'build_exe': build_dir,
}
bdist_msi_options = {
    ...
    'bdist_dir': bdist_dir,    
}
setup(
    ...
    options={
        'build': {'build_exe': build_dir},
        'build_exe': build_options,
        'bdist_msi': bdist_msi_options,
    },
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM