VS2017安装Installer Projects制作Setup包

下载安装扩展包

VS2017默认未安装Installer Projects Package,需要联机下载:
在这里插入图片描述
也可网页上下载离线InstallerProjects.vsix文件:
https://visualstudioclient.gallerycdn.vsassets.io/extensions/visualstudioclient/microsoftvisualstudio2017installerprojects/1.0.2/1643397326118/InstallerProjects.vsix
双击下载的.vsix安装后(重启VS IDE)后可以点击菜单项“扩展和更新”看到:
在这里插入图片描述

制作安装项目

打开已有的代码项目

在这里插入图片描述

vs未能正确加载Installer Projects Package包问题

以下主要参考:添加链接描述[https://blog.csdn.net/qq_45534098/article/details/106084222]

可以使用 devenv命令工具来解决,操作如下

打开vs2017开发人员命令提示符(请使用管理员身份运行),如图
在这里插入图片描述
敲入 devenv /setup 回车执行

最后重启vs解决。

有的再重启vs时还会出现 未能正确加载“Microsoft.VisualStudio*******Package”包 的错误

进入 …\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE 目录,

打开cmd窗口,输入 devenv /reset user data 执行,然后 键入 devenv /reset settings 执行

执行完毕后,vs就可以正常使用了

继续…

(1)先配置File System(Setup)的属性【CSDN很多不赘述】
在这里插入图片描述
(2)右击Application Folder调出菜单,单击Add-项目输出
在这里插入图片描述

  1. Folder : 添加目录
  2. 项目输出: 将选中项目生成 dll 或者 exe 等
  3. 文件: 按照原格式输出,添加额外的依赖文件( html 、不被主程序所引用的 dll 、 exe 等)
  4. 程序集: 选择指定版本程序集输出

调出对话框
在这里插入图片描述
自动会正确配置“主输出”,不会出现空对话框的情况。

(3)如果程序中用到了外部的文件,那么可以继续操作: 右键“添加”→“文件”,选择要添加的文件

接下来开始处理“创建快捷方式‘与卸载方式,可参考文章
http://wenku.baidu.com/view/a77b092158fb770bf78a553f.html

http://hi.baidu.com/501796145/item/52de27ca7e9bc07af7c95d3d

(4)快捷方式生成步骤

  1. 在 Application Folder 文件夹中选中主输出右键生成快捷方式,将快捷方式移至 User‘s Desktop 或
    User‘s Programs Menu文件夹中(如下图所示)
    在这里插入图片描述
    在这里插入图片描述
    2设置快捷方式属性,修改快捷方式名称和图标(.ico格式),如下图
    在这里插入图片描述
    (5)添加卸载程序
  2. 卸载功能实现: C:\Windows\System32\msiexec.exe
  3. 在 Application Folder 文件夹中添加 msiexec.exe ,创建快捷方式,并设置属性 Arguments=/x {1028BF2E-832F-4B79-8D54-01CFB4BB30EC}
    (备注:{1028BF2E-832F-4B79-8D54-01CFB4BB30EC} 为 Setup项目属性中的ProductCode,当项目属性中ProductCode改变时,卸载这里的Arguments需要跟着改变)

2.7依赖框架
右键Setup项目–>属性–>Prerequisites
在系统必备的窗体中,勾选Framework 4.6(开发的应用程序所使用的Framework版本,示例中为4.6),选择【从组件供应商的网站上下载系统必备组件】(此选项会提示客户去微软官网下载Framework 4.6 )。
指定系统必备组件的安装位置其他选项:需要提前把Framework 指定版本的安装包下载下来放置相应目录下
启动条件:右键Setup项目–>View–>启动条件,.NET Framework属性Version修改为.NET Framework 4.6(与系统必备Framework版本一致)
在这里插入图片描述

原文链接:https://blog.csdn.net/Tanasha114/article/details/109779001

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/54973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字符串相关知识

目录 一、Java中的字符串 1. 定义与创建 2. 字符串操作 (1)连接 (2)获取长度 (3)查找子串 (4)字符串比较 (5) 字符串转换 (6&#xff09…

Python pyppeteer 与playwright 模拟浏览器请求 部署服务器遇到的坑

在服务器部署遇到的问题 在服务器上部署后如果遇到代码执行卡主问题 通过debug 显示 代码到 browser await launch(headlessFalse)卡主了 ,由于服务器没有浏览器的图形化环境,所以只能将修改为无头浏览器的模式启动 browser await launch(headlessTrue) async def crawling…

FPGA IP 和 开源 HDL 一般去哪找?

在FPGA开发的世界中,IP核和HDL模块是构建复杂数字系统的基石。它们如同乐高积木,让开发者能够快速搭建和重用经过验证的电路功能。但你是否曾感到迷茫,不知道从哪里寻找这些宝贵的资源?本文将为你揭开寻找FPGA IP核和HDL模块资源的…

Tesla T4 P2P测试

Tesla T4 P2P测试 一.测试环境二.测试步骤1.获取设备信息2.查看PCIE拓扑结构3.选择9B、9E这二张4.查看逻辑设备ID5.设置环境变量(需要用逻辑设备ID,通过UUID跟smi看到的物理ID关联)6.不同地址的原子操作2.P2P与非P2P的性能差异3.GPU带宽测试 Tesla T4 P2P测试 通过物理ID找到逻…

2024PT展,现场精华

9月25-27日,2024年国际信息通信展(简称PT展)在北京国家会议中心召开。 小枣君去了现场,也拍了一些照片,特此分享给大家。 会场离“奥林匹克公园”地铁站很近: Logo设计得还是挺好看的: 熟悉的场…

一区黏菌算法+双向深度学习+注意力机制!SMA-BiTCN-BiGRU-Attention黏菌算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测

一区黏菌算法双向深度学习注意力机制!SMA-BiTCN-BiGRU-Attention黏菌算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测 目录 一区黏菌算法双向深度学习注意力机制!SMA-BiTCN-BiGRU-Attention黏菌算法优化双向时间卷积双向门控循环单元…

探索机器人快换盘技术的未来之路:智能化与协作的革新

在当今快速发展的科技时代,机器人已成为众多领域不可或缺的得力助手。其中,机器人快换盘技术作为提升机器人灵活性和应用广度的重要技术,正经历着前所未有的变革与创新。下面请随我们一起深入探讨这一技术的未来发展趋势。 一、人工智能&…

数据工程师岗位常见面试问题-2(附回答)

数据工程师已成为科技行业最重要的角色之一,是组织构建数据基础设施的骨干。随着企业越来越依赖数据驱动的决策,对成熟数据工程师的需求会不断上升。如果您正在准备数据工程师面试,那么应该掌握常见的数据工程师面试问题:包括工作…

Flink Lookup Join的工作原理、性能优化和应用场景

目录 1 Flink Lookup Join的工作原理 1.1 数据流处理与维表关联 1.2 键值对查询 1.3 数据时效性与准确性 2 Flink Lookup Join的实现方法 2.1 SQL语句编写 2.2 系统架构与数据流 3 Flink Lookup Join的性能优化 3.1 数据存储与索引 3.2 连接算法优化 3.3 资源配置与…

第19周JavaWeb编程实战-MyBatis实现OA系统 1-OA系统

办公OA系统项目开发 课程简介 本课程将通过慕课办公OA平台的开发,讲解实际项目开发中必须掌握的技能和设计技巧。课程分为三个主要阶段: 需求说明及环境准备: 基于RBAC的访问控制模块开发: 多级请假审批流程开发: …

matlab-对比两张图片的HSV分量的差值并形成直方图

%对比两张图片的HSV分量的差值并形成直方图,改个路径就能用,图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); HSV1 rgb2ntsc(I1); HSV2 rgb2ntsc(I2); %HSV,HSV 代…

Android Webview和ScrollView冲突和WebView使用总结

1.因为Webview和ScrollView都用滑动事件,导致webview很难被滑动,即使被滑动了一点也非常不顺畅2.解决滑动冲突问题后发现,如果webview嵌套的html中含有轮播图等还是有问题。 使用自定义ScrollWebView解决这个问题 public class ScrollWebVi…

<<迷雾>> 第 4 章 电子计算机发明的前夜 示例电路

莫尔斯电报示意图 info::操作说明 鼠标单击开关切换开合状态 通电后, 线圈产生磁力从而将铁片开关(衔铁臂)吸引下来 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch04-01-morse-te…

Shopline对接需要注意的问题

Shopline对接是一项复杂而细致的工作,为了确保对接的顺利进行,并保证系统的稳定性和可靠性,需要注意以下几个方面。 1.API文档的详细阅读 功能理解: 仔细阅读Shopline提供的API文档,全面了解每个接口的功能、参数、返…

AI学习指南深度学习篇-Adadelta的Python实践

AI学习指南深度学习篇-Adadelta的Python实践 深度学习是人工智能领域的一个重要分支,近年来在各个领域都取得了显著的成就。在深度学习的模型训练中,优化算法起着至关重要的作用,其中Adadelta是一种常用的优化算法之一。本篇博客将使用Pytho…

初始docker以及docker的基本使用!!!

文章目录 虚拟化技术Docker/podman 命令通用命令查看docker 当前版本管理docker运行 镜像操作[image]列出本地所有镜像拉取镜像删除镜像把docker中的镜像打包成文件把镜像文件加载到docker中上传镜像 容器操作[container]创建容器docker run的参数选项列出所有容器启动容器停止…

JavaScript 中的闭包的形成及使用场景

JavaScript 中的闭包 闭包(Closure) 是 JavaScript 中一个非常重要且独特的概念,它指的是 函数能够记住并访问其词法作用域内的变量,即使这个函数在其词法作用域之外执行。 通俗地说,闭包是 一个函数可以“记住”它在…

安防区域保护:无线电干扰设备技术详解

在安防区域保护中,无线电干扰设备技术扮演着重要角色,它主要用于通过发射特定频率的无线电波来干扰无人机或其他无线电设备的通信链路、导航信号或控制信号,以达到削弱、阻断甚至控制这些设备运行的目的。以下是对无线电干扰设备技术的详细解…

EditText 设置imeOptions事件监听无效问题

在EditText获取焦点的时候,给软键盘右下角按键添加事件事件监听,发现出现setOnEditorActionListener事件监听无效的问题。 EditText设置 imeOptions表示为搜索事件,软键盘弹出时,右下角显示为搜索字样而不是换行符 android:sin…

【GAN】生成对抗网络Generative Adversarial Networks理解摘要

【Pytorch】生成对抗网络实战_pytorch生成对抗网络-CSDN博客 【损失函数】KL散度与交叉熵理解-CSDN博客 [1406.2661] Generative Adversarial Networks (arxiv.org) GAN本质是对抗或者说竞争,通过生成器和鉴别器的竞争获取有效地结果,换句话说&#xff0…