Skip to content

Windows 端不再支持安装时选择安装路径 #6385

Closed
@88250

Description

@88250
Member

避免因为安装路径选择不当导致数据丢失。

如果需要自定义安装目录可以通过 /D 参数,细节可参考 #6390 感谢 @Zuoqiu-Yingyi 贡献方案。

Activity

added this to the 2.4.8 milestone on Oct 28, 2022
self-assigned this
on Oct 28, 2022
Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Oct 28, 2022

@Zuoqiu-Yingyi
Contributor

可以设置为覆盖安装(升级)时不能重新选择安装路径

88250

88250 commented on Oct 28, 2022

@88250
MemberAuthor

可以设置为覆盖安装(升级)时不能重新选择安装路径

都不支持选择。

changed the title [-]不再支持安装时选择安装路径和用户[/-] [+]Windows 端不再支持安装时选择安装路径和用户[/+] on Oct 28, 2022
Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Oct 28, 2022

@Zuoqiu-Yingyi
Contributor

@88250 那能使用命令行参数自定义安装目录吗

88250

88250 commented on Oct 28, 2022

@88250
MemberAuthor

暂时不考虑了。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Oct 28, 2022

@Zuoqiu-Yingyi
Contributor

不让选择安装目录会被当做流氓软件的...

leolee9086

leolee9086 commented on Oct 28, 2022

@leolee9086

这个 好像是有被误解的风险啊

mozhux

mozhux commented on Oct 28, 2022

@mozhux

这个要不还是限制工作空间目录不能设置为安装目录吧,就是在选择的时候校验报错。限制安装路径的话会被说的,而且windows商店版本身就是限制的,但是也不可避免工作空间选到安装路径去啊

88250

88250 commented on Oct 28, 2022

@88250
MemberAuthor

工作空间切换的时候已经判断过了。

mozhux

mozhux commented on Oct 28, 2022

@mozhux

工作空间切换的时候已经判断过了。

那也不能因为极个别用户的误操作就直接砍了选择安装路径吧。我倒是觉得更新覆盖安装这种默认不给选择是合理的,首次安装的时候为啥不能呢?

33 remaining items

LinYunerr

LinYunerr commented on Oct 28, 2022

@LinYunerr

我建议是在安装过程页面写一下为什么不能改的原因,这样也会让大家更好理解一些,毕竟不是所有人都会看更新issues的

mdzz2048

mdzz2048 commented on Oct 28, 2022

@mdzz2048
Contributor

能不能考虑把安装界面做成类似QQ这样的?在安装的时候就给用户进行安装路径和工作空间的区分。
就算没用过思源这样区分安装路径和工作空间的,用QQ的安装路径和文件保存位置理解起来也比较简单。

image

Hyd19

Hyd19 commented on Oct 28, 2022

@Hyd19

存在了安装不了没法解决。

弹窗提醒用户更换安装目录呀, 毕竟安装程序要解决的问题是避免安装到工作空间造成数据丢失, 存在了安装不了就是用户需要解决的问题了

这个问题如果这样看的话那实际上根本没有问题嘛,之前该提示也提示了,没人看提示内容的。就算禁止安装,也没有人看为啥禁止安装的,只会反馈说安装不了。

其实恰恰是能够正常安装,所以很多人才会不看提醒,直接确定、下一步,然后造成不可挽回的损失。如果无法安装了,再弹窗,反而会认认真真看一遍提醒。

UFDXD

UFDXD commented on Oct 28, 2022

@UFDXD

存在了安装不了没法解决。

弹窗提醒用户更换安装目录呀, 毕竟安装程序要解决的问题是避免安装到工作空间造成数据丢失, 存在了安装不了就是用户需要解决的问题了

这个问题如果这样看的话那实际上根本没有问题嘛,之前该提示也提示了,没人看提示内容的。就算禁止安装,也没有人看为啥禁止安装的,只会反馈说安装不了。

其实恰恰是能够正常安装,所以很多人才会不看提醒,直接确定、下一步,然后造成不可挽回的损失。如果无法安装了,再弹窗,反而会认认真真看一遍提醒。

弄个倒计时读秒弹窗,强制看就行了(让他没有直接下一步)

tcmtom

tcmtom commented on Oct 28, 2022

@tcmtom

支持强制提醒,支持让用户选择
反对强制默认安装路径

iamqiz

iamqiz commented on Oct 28, 2022

@iamqiz

附议,不能选择安装目录的软件,太令人反感了 ,不是每个人的C盘都很大,都是固态硬盘
这种大决策我觉得还是要事先投票收集下大家的意见比较好

svchord

svchord commented on Oct 28, 2022

@svchord

不知道这样能不能行:

安装的第一步选择安装目录,第二步选择工作空间目录(该步骤可以勾选已存在的工作空间),然后如果工作空间目录在安装目录下,就无法点击下一步,并在安装页面上显示红色提示(而不是弹窗)。

这样有两个好处:

  1. 更简单易懂地保证路径没问题——只需要对比多个目录路径就好了(包括已选择的目录路径和已存在的工作空间路径),不需要用命令查询安装目录下是否有工作空间目录。
  2. 解决用户看到警告弹窗时产生的警惕心理。
iSyser

iSyser commented on Oct 28, 2022

@iSyser

对于一个旧版本来说,可以软件安装在 D 盘,数据却在默认的安装路径上,此时如果软件更新强制安装在默认路径上,反而造成了数据丢失的风险。因此 D 大的强行禁掉安装路径选择,仍然避免不了数据迁移。

可就此简单方案进行技术、用户交互等等方面的讨论
部署分为“安装”、“修改”、“卸载”三类。

讨论之前,我们约定有关软件路径的设置,存储在 %LocalAppData%/siyuan 或者注册表等方便部署程序存取的位置,下文以 %LocalAppData%/siyuan 为例。

安装

安装是指全新的部署,此前计算机中并无残留的配置、文件。

给定默认的安装路径,为 "%ProgramFiles(x86)%/siyuan",给定默认的工作空间路径,为 "%UserProfile%/siyuan"。当用户修改任意一者时,判断其中一者是否为另一者的子集(请注意展开环境变量、符号链接等等,判断最终的真实地址),若是,则禁用“下一步”按钮,添加“恢复默认路径”按钮,此时,窗口中仅有五个元素处于可用状态,分别是

  1. 窗口关闭按钮
  2. 编辑安装路径的文本域(或称编辑框),也可以再在右侧(希腊、阿拉伯、希伯来左侧)放一个选择路径的小按钮
  3. 编辑工作路径的文本域(或称编辑框),也可以再在右侧(希腊、阿拉伯、希伯来左侧)放一个选择路径的小按钮
  4. “恢复默认安装路径”的醒目按钮
  5. “恢复默认工作空间路径”的醒目按钮

此时,“下一步”已禁用,对于初阶用户,只能点击恢复默认路径以继续安装流程;而对于更进阶的用户,可以再次修改两者路径,直到两者不处于包含、父子关系。

安装时,请将此两者路径写入 %LocalAppData%/siyuan 中备用。此之前、之后的流程不变。

修改

如更新、修复、在有残留文件的情况下安装等过程。

  1. 对于执行本文件所描述的操作的最初版本之前的版本,我们需要对特定版本进行特定的操作,以提取到软件的安装路径、工作空间路径。

  2. 对于此版本之后的版本,检查存储于 %LocalAppData%/siyuan 中的数据,找到当前已安装版本的路径及工作空间。

至此,无论旧版本还是新版本,我们都已经找到安装路径和工作空间路径。对比,若任一者的 真实目录 都不是另一者的子集,即两者不是父子关系,则继续进行更新等流程,因此,对于此版本之后的版本,更新依然是可以无人值守的。

若两者是父子关系,对 UI 作类似上述变化,但此时工作空间的数据实际存在于其中,因此我们不能简单的恢复默认路径,这样会造成数据丢失的假象。我们分以下两种情况讨论:

  1. 当前的工作空间路径在“默认安装路径”之内

    此时,软件一定安装在默认路径。UI 给出“工作空间迁移到默认路径”,这按钮会导致数据迁移立即进行。

  2. 当前的工作空间路径不在默认安装路径之内

    此时,仅给出“恢复默认安装路径”按钮,而不给出“恢复默认工作空间路径”。这个选择是为了避免对数据迁移消耗太多时间,实际上数据不需要迁移。安装时,我们抹去旧版本的注册信息,用新的替代。再执行删除(手动卸载旧版)操作,此操作需要排除工作空间的路径内容。

至此,我们安全地完成了旧版本的升级,且在新版本情况下,除非用户手动修改存储于 %LocalAppData%/siyuan 中的数据,否则不可能因升级而造成数据丢失。

卸载

新版本的卸载可以询问用户是否保留配置、数据。配置是指存储于 %LocalAppData%/siyuan 中的数据,数据时指工作空间中的数据。也可以不询问,而选择完全保留此两者。这无关紧要,因为安装过程已足够严密。

这个流程是比较简单的,没有遇到问题时,和原先的安装、更新流程一致,遇到路径不合法时,对于普通用户而言,仅多了两个按钮,“迁移数据”,或者“恢复默认安装路径”。迁移数据调用 Windows 的接口,弹出可视的进度窗口,这样用户也知道正在做什么。
这两个按钮需要醒目些,如果无法做到,可以让其他元素不醒目些,如明暗对比、模糊与清晰对比,甚至,可以把它移动到原先“下一步”按钮所在的位置,这样看起来,就好像是正常升级流程的一部分,如果你口中的无脑用户一直无脑点,这个按钮就会被点到的。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Oct 28, 2022

@Zuoqiu-Yingyi
Contributor

经过测试, 静默安装至默认路径在更新时依旧会卸载并清空原安装路径的内容, 且默认路径即为上次安装路径, 因此若用户工作空间设置在了安装目录下级, 依旧会丢失数据
静默安装前:
image
静默安装后:
image

changed the title [-]Windows 端不再支持安装时选择安装路径和用户[/-] [+]Windows 端不再支持安装时选择安装路径[/+] on Oct 28, 2022
reopened this on Oct 28, 2022
88250

88250 commented on Oct 28, 2022

@88250
MemberAuthor

一些变更改进已经由 @Zuoqiu-Yingyi 提供实现,细节可参考 #6390 感谢各位的讨论和支持。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @88250@iSyser@aptexd@andyer1511@leolee9086

      Issue actions

        Windows 端不再支持安装时选择安装路径 · Issue #6385 · siyuan-note/siyuan