build(win): rename executable to CherryStudio.exe

Set win.executableName to CherryStudio so the installed binary matches
the no-space convention already used on Linux. productName remains
"Cherry Studio", so all user-visible branding (shortcut title, install
directory, uninstall list entry, window title) keeps the spaced form.

Update the userDataLocation test fixture and the i18n filter-list
example to reference the new file name.
This commit is contained in:
fullex
2026-04-29 18:51:43 -07:00
parent ee15daeef2
commit 82b8417764
13 changed files with 17 additions and 17 deletions

View File

@@ -80,7 +80,7 @@ extraResources:
- from: "packages/provider-registry/data"
to: "provider-registry"
win:
executableName: Cherry Studio
executableName: CherryStudio
artifactName: ${productName}-${version}-${arch}-setup.${ext}
target:
- target: nsis

View File

@@ -189,17 +189,17 @@ describe('getNormalizedExecutablePath', () => {
it('Windows non-portable: returns app.getPath("exe") verbatim', async () => {
stubConstants({ isLinux: false, isWin: true, isPortable: false })
stubElectron({ exePath: 'C:\\Program Files\\Cherry Studio\\Cherry Studio.exe' })
stubElectron({ exePath: 'C:\\Program Files\\Cherry Studio\\CherryStudio.exe' })
stubBootConfig()
stubFs()
const { getNormalizedExecutablePath } = await loadModule()
expect(getNormalizedExecutablePath()).toBe('C:\\Program Files\\Cherry Studio\\Cherry Studio.exe')
expect(getNormalizedExecutablePath()).toBe('C:\\Program Files\\Cherry Studio\\CherryStudio.exe')
})
it('Windows portable: returns PORTABLE_EXECUTABLE_DIR/cherry-studio-portable.exe', async () => {
vi.stubEnv('PORTABLE_EXECUTABLE_DIR', 'D:\\PortableApps\\CherryStudio')
stubConstants({ isLinux: false, isWin: true, isPortable: true })
stubElectron({ exePath: 'D:\\PortableApps\\CherryStudio\\Cherry Studio.exe' })
stubElectron({ exePath: 'D:\\PortableApps\\CherryStudio\\CherryStudio.exe' })
stubBootConfig()
stubFs()
const { getNormalizedExecutablePath } = await loadModule()
@@ -273,7 +273,7 @@ describe('resolveUserDataLocation', () => {
it('BootConfig empty + isPortable=true: setPath called with portableDir/data', async () => {
vi.stubEnv('PORTABLE_EXECUTABLE_DIR', 'D:\\PortableApps\\CherryStudio')
stubConstants({ isLinux: false, isWin: true, isPortable: true })
stubElectron({ exePath: 'D:\\PortableApps\\CherryStudio\\Cherry Studio.exe' })
stubElectron({ exePath: 'D:\\PortableApps\\CherryStudio\\CherryStudio.exe' })
stubBootConfig({ 'app.user_data_path': {} })
stubFs()
const { resolveUserDataLocation } = await loadModule()
@@ -311,7 +311,7 @@ describe('resolveUserDataLocation', () => {
it('Windows portable normalized key matches in BootConfig: setPath called', async () => {
vi.stubEnv('PORTABLE_EXECUTABLE_DIR', 'D:\\PortableApps\\CherryStudio')
stubConstants({ isLinux: false, isWin: true, isPortable: true })
stubElectron({ exePath: 'D:\\PortableApps\\CherryStudio\\Cherry Studio.exe' })
stubElectron({ exePath: 'D:\\PortableApps\\CherryStudio\\CherryStudio.exe' })
stubBootConfig({
'app.user_data_path': {
'D:\\PortableApps\\CherryStudio/cherry-studio-portable.exe': 'D:\\Data\\Cherry'

View File

@@ -3696,7 +3696,7 @@
"title": "Application Filter List",
"user_tips": {
"mac": "Please enter the Bundle ID of the application, one per line, case insensitive, can be fuzzy matched. For example: com.google.Chrome, com.apple.mail, etc.",
"windows": "Please enter the executable file name of the application, one per line, case insensitive, can be fuzzy matched. For example: chrome.exe, weixin.exe, Cherry Studio.exe, etc."
"windows": "Please enter the executable file name of the application, one per line, case insensitive, can be fuzzy matched. For example: chrome.exe, weixin.exe, CherryStudio.exe, etc."
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "应用筛选名单",
"user_tips": {
"mac": "请输入应用的Bundle ID每行一个不区分大小写可以模糊匹配。例如com.google.Chrome、com.apple.mail等",
"windows": "请输入应用的执行文件名每行一个不区分大小写可以模糊匹配。例如chrome.exe、weixin.exe、Cherry Studio.exe等"
"windows": "请输入应用的执行文件名每行一个不区分大小写可以模糊匹配。例如chrome.exe、weixin.exe、CherryStudio.exe等"
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "應用篩選名單",
"user_tips": {
"mac": "請輸入應用程式的 Bundle ID每行一個、不區分大小寫可模糊比對。例如com.google.Chrome、com.apple.mail 等",
"windows": "請輸入應用程式的執行檔名稱每行一個、不區分大小寫可模糊比對。例如chrome.exe、weixin.exe、Cherry Studio.exe 等"
"windows": "請輸入應用程式的執行檔名稱每行一個、不區分大小寫可模糊比對。例如chrome.exe、weixin.exe、CherryStudio.exe 等"
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "App-Filterliste anwenden",
"user_tips": {
"mac": "Bitte geben Sie die Bundle-ID der App ein, eine pro Zeile, Groß-/Kleinschreibung egal, unscharfe Übereinstimmung möglich. Z. B.: com.google.Chrome, com.apple.mail",
"windows": "Bitte geben Sie den ausführbaren Dateinamen der App ein, eine pro Zeile, Groß-/Kleinschreibung egal, unscharfe Übereinstimmung möglich. Z. B.: chrome.exe, weixin.exe, Cherry Studio.exe"
"windows": "Bitte geben Sie den ausführbaren Dateinamen der App ein, eine pro Zeile, Groß-/Kleinschreibung egal, unscharfe Übereinstimmung möglich. Z. B.: chrome.exe, weixin.exe, CherryStudio.exe"
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "Λίστα Εφαρμογών Φιλτραρίσματος",
"user_tips": {
"mac": "Παρακαλώ εισαγάγετε το Bundle ID της εφαρμογής, ένα ανά γραμμή, δεν γίνεται διάκριση πεζών/κεφαλαίων, υποστηρίζεται ασαφής αντιστοίχιση. Για παράδειγμα: com.google.Chrome, com.apple.mail κ.λπ.",
"windows": "Παρακαλώ εισαγάγετε το όνομα του εκτελέσιμου αρχείου της εφαρμογής, ένα ανά γραμμή, δεν γίνεται διάκριση πεζών/κεφαλαίων, υποστηρίζεται ασαφής αντιστοίχιση. Για παράδειγμα: chrome.exe, weixin.exe, Cherry Studio.exe κ.λπ."
"windows": "Παρακαλώ εισαγάγετε το όνομα του εκτελέσιμου αρχείου της εφαρμογής, ένα ανά γραμμή, δεν γίνεται διάκριση πεζών/κεφαλαίων, υποστηρίζεται ασαφής αντιστοίχιση. Για παράδειγμα: chrome.exe, weixin.exe, CherryStudio.exe κ.λπ."
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "Lista de selección de aplicaciones",
"user_tips": {
"mac": "Ingrese el ID de paquete de la aplicación, uno por línea, sin distinguir mayúsculas y minúsculas, se permite la coincidencia aproximada. Por ejemplo: com.google.Chrome, com.apple.mail, etc.",
"windows": "Ingrese el nombre del archivo ejecutable de la aplicación, uno por línea, sin distinguir mayúsculas y minúsculas, se permite la coincidencia aproximada. Por ejemplo: chrome.exe, weixin.exe, Cherry Studio.exe, etc."
"windows": "Ingrese el nombre del archivo ejecutable de la aplicación, uno por línea, sin distinguir mayúsculas y minúsculas, se permite la coincidencia aproximada. Por ejemplo: chrome.exe, weixin.exe, CherryStudio.exe, etc."
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "Liste de sélection des applications",
"user_tips": {
"mac": "Veuillez saisir l'ID de bundle de l'application, un par ligne, sans sensibilité à la casse, correspondance floue possible. Par exemple : com.google.Chrome, com.apple.mail, etc.",
"windows": "Veuillez saisir le nom du fichier exécutable de l'application, un par ligne, sans sensibilité à la casse, correspondance floue possible. Par exemple : chrome.exe, weixin.exe, Cherry Studio.exe, etc."
"windows": "Veuillez saisir le nom du fichier exécutable de l'application, un par ligne, sans sensibilité à la casse, correspondance floue possible. Par exemple : chrome.exe, weixin.exe, CherryStudio.exe, etc."
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "アプリケーションフィルターリスト",
"user_tips": {
"mac": "アプリケーションのBundle IDを1行ずつ入力してください。大文字小文字は区別しません。例: com.google.Chrome, com.apple.mail, など。",
"windows": "アプリケーションの実行ファイル名を1行ずつ入力してください。大文字小文字は区別しません。例: chrome.exe, weixin.exe, Cherry Studio.exe, など。"
"windows": "アプリケーションの実行ファイル名を1行ずつ入力してください。大文字小文字は区別しません。例: chrome.exe, weixin.exe, CherryStudio.exe, など。"
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "Lista de Seleção de Aplicativos",
"user_tips": {
"mac": "Insira o Bundle ID do aplicativo, um por linha, sem distinção entre maiúsculas e minúsculas, correspondência parcial permitida. Por exemplo: com.google.Chrome, com.apple.mail, etc.",
"windows": "Insira o nome do arquivo executável do aplicativo, um por linha, sem distinção entre maiúsculas e minúsculas, correspondência parcial permitida. Por exemplo: chrome.exe, weixin.exe, Cherry Studio.exe, etc."
"windows": "Insira o nome do arquivo executável do aplicativo, um por linha, sem distinção entre maiúsculas e minúsculas, correspondência parcial permitida. Por exemplo: chrome.exe, weixin.exe, CherryStudio.exe, etc."
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "Listă filtrare aplicații",
"user_tips": {
"mac": "Te rugăm să introduci Bundle ID-ul aplicației, unul pe linie, nu este sensibil la majuscule/minuscule, poate fi potrivit aproximativ. De exemplu: com.google.Chrome, com.apple.mail etc.",
"windows": "Te rugăm să introduci numele fișierului executabil al aplicației, unul pe linie, nu este sensibil la majuscule/minuscule, poate fi potrivit aproximativ. De exemplu: chrome.exe, weixin.exe, Cherry Studio.exe etc."
"windows": "Te rugăm să introduci numele fișierului executabil al aplicației, unul pe linie, nu este sensibil la majuscule/minuscule, poate fi potrivit aproximativ. De exemplu: chrome.exe, weixin.exe, CherryStudio.exe etc."
}
},
"linux": {

View File

@@ -3696,7 +3696,7 @@
"title": "Danh sách Bộ lọc Ứng dụng",
"user_tips": {
"mac": "Vui lòng nhập Bundle ID của ứng dụng, mỗi dòng một cái, không phân biệt chữ hoa chữ thường, có thể khớp mờ. Ví dụ: com.google.Chrome, com.apple.mail, v.v.",
"windows": "Vui lòng nhập tên tệp thực thi của ứng dụng, mỗi dòng một cái, không phân biệt chữ hoa chữ thường, có thể khớp mờ. Ví dụ: chrome.exe, weixin.exe, Cherry Studio.exe, v.v."
"windows": "Vui lòng nhập tên tệp thực thi của ứng dụng, mỗi dòng một cái, không phân biệt chữ hoa chữ thường, có thể khớp mờ. Ví dụ: chrome.exe, weixin.exe, CherryStudio.exe, v.v."
}
},
"linux": {