在制作一个安装包之后,本地运行没问题,客户始终无法运行。最终发现本地是用的.net Framework4.8,客户是4.6.2,编译器生成的文件里有一部分不在根目录。或许是不同版本的Framework编译的结果有差异吧。这个待查。

于是准备将Framework包打进安装包里,在安装项目上右键,选择属性栏

属性

在弹出的窗体上点击Prerequisites按钮,在弹出的界面里勾选相关的版本及获取方式。这里选择第二个,离线包模式。

选择获取方式

接下来就是关键操作。根据官方文档。主要几个步骤:

  1. 找到%ProgramFiles(x86)%\Microsoft SDKs\ClickOnce Bootstrapper\Packages\路径
  2. 找到对应版本的文件夹,例如这里就是DotNetFX48
  3. 在里面打开配置文件,找到包的下载路径,下载相关文件,保存到本地文件夹。
  4. 最关键一步:将下载的文件复制到DotNetFX48文件夹里放着,不要放在任何语言包内,对应的语言包则可以放入不同的文件夹中。

下载路径

完成以上步骤后,再生成打包项目时,应该就能将需要的Framework文件打包到生成的安装文件夹目录里,一同拷贝发送用户,即可自动安装需要的Framework