问题标签 [vdproj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3180 浏览

visual-studio-2017 - 基于构建配置的 Visual Studio 安装程序项目自定义操作

是否可以在安装程序项目中根据项目构建配置(例如调试、发布等)有条件地运行自定义操作?

还要根据构建配置包含/排除文件吗?

我可以在 Visual Studio 2017 中或通过手动编辑 .vdproj 文件来执行这些操作吗?

0 投票
1 回答
1693 浏览

jenkins - 使用 VS2017 安装程序项目从命令行运行 vs2017 DevEnv

我继承了一堆安装一些 Win 服务的 VS2010(啊!)安装程序项目(.vdproj)

当然,在 VS2017 中这些不再存在,但扩展“VS2017 安装程序项目”效果很好。我可以很好地打开它们并构建,它会生成 msi 文件。

然而,这也需要在 Jenkins 机器(运行 Windows 7)上完成。所以我在 Jenkins 机器上安装了带有 Project Installer 扩展的 VS2017,并尝试首先从 IDE 运行项目。效果很好。生成 .msi 没有问题。

然后我尝试从命令行运行它:

它不会产生任何东西。我是否正在尝试做一些不可能的事情?

当然有各种各样的长期解决方案,例如 TopShelf、AdvancedInstaller、WIX 等,带有不错的 Jenkins 插件,但现在如果我能完成这项工作会很好。

0 投票
1 回答
120 浏览

visual-studio-2015 - 为什么在 Visual Studio 中构建 vdproj 文件会尝试触发我的计算机的还原?

我的机器上有一个奇怪的构建错误,在 vdproj 上触发构建会触发一个对话框,其中显示:

Windows 正在配置 Microsoft Visual Studio 2015 Shell(隔离),请稍候。

这会运行一段时间,然后出现以下错误:

找不到将您的计算机恢复到以前状态所需的一个或多个文件。恢复将是不可能的。

该项目上周编译正确,并且没有对部署项目进行任何更改(已对其打包的代码进行了一些错误修复,但回滚这些并不能修复错误)。

由于代码相同,我假设本地机器上的某些内容发生了变化,但我不确定如何诊断问题。Windows 中是否有可能破坏 Visual Studio 2015 的最新更改?我怎样才能找出根本问题是什么?

0 投票
1 回答
646 浏览

visual-studio - Visual Studio 安装程序,在复制文件之前执行自定义操作

我正在使用常规的 Visual Studio 安装项目来部署服务。在安装程序复制文件之前,我需要执行自定义操作。AFAIS 所有自定义操作(源自 Installer ...)都是在复制文件执行的(这很明显,因为它们需要以某种方式执行)。

实际的问题是,安装程序会自行检查哪些文件正在使用并在复制之前停止服务(顺便说一句,安装程序停止应用程序的对话框告诉垃圾 - 但这是一个不同的问题)。基本上这是一个好主意。但是,安装后,服务配置设置为在服务未运行时重新启动服务(服务控制管理器执行此工作)。此配置是一项要求,不能永久更改(只能临时更改)。稍后在升级安装过程中,这有时会与(升级-)安装过程发生冲突。因此,在升级安装的情况下,我想将(旧)服务配置更改为在将文件复制到目标文件夹之前重新启动甚至卸载(旧)服务。否则,如果文件仍在使用中,复制文件有时会失败(因为旧服务再次运行(刚刚由服务控制管理器重新启动),如上所述)。长话短说,我需要在安装程序复制(新)文件之前执行一些代码。

这是一个相关的问题,但答案不适合我的问题: 在文件被 msi 安装程序复制到目标目录之前备份目标目录

0 投票
1 回答
472 浏览

windows-installer - log4net 日志文件在应用程序安装子文件夹的 Windows 资源管理器中不可见

我将 log4net 用于我用 c# 编写的桌面应用程序,并使用 Visual Studio 扩展“Microsoft Visual Studio Installer Projects”(MSI-Installer)进行部署。安装后,我没有看到为 log4net 定义的日志子文件夹。

Microsoft Visual Studio 安装程序项目”中的 TARGETDIR 定义为[ProgramFiles64Folder][Manufacturer]\[ProductName].

log4net 日志文件定义为

通过“Microsoft Visual Studio 安装程序项目”-创建的 setup.exe 和 msi-installer 安装应用程序后,尽管显示隐藏文件、文件夹、.. . 已设置。

出于测试目的,我将以下代码添加到我的应用程序中:

Program Files\MyManufacturer\MyProductName\log\MyApp.log 因此,可以通过应用程序访问下面的日志文件,我看到它在增长!

所以问题是:日志子目录在哪里?如何使它在 Wndows 资源管理器中可见?这是权限问题吗?

0 投票
1 回答
698 浏览

visual-studio-2015 - Visual Studio 安装项目 (vdproj) - STDOLE,如何正确注册 COM DLL?

我正在使用 Visual Studio 2015 安装项目。

我在设置中有一个 COM DLL,它引用了 STDOLE(系统类型库,{00020430-0000-0000-C000-000000000046},据我了解,不能注册,因为它是受保护的文件/注册)。如果您尝试注册它,您会在安装 MSI 时遇到错误(警告)。

然而,vdproj 扩展将此 DLL 的注册添加到“TypeLib”MSI 表中。似乎它并不总是这样做,但在某些情况下我无法推断。我没有选择排除该 tlb,它以某种方式不断重新出现(可能来自依赖项?)

  1. 为什么 vdproj 会尝试注册不应注册的 DLL?
  2. 如何避免这种情况?我尝试使用脚本添加生成的 MSI 的手动后期编辑以删除该 tlb,并且有效;然而,这似乎是解决问题的一种完全邪恶的方法。

对于这个特定项目,我坚持使用 Visual Studio 安装程序,无法切换到更合理和透明的替代方案(例如 WiX)。非常感谢任何帮助或建议!

0 投票
1 回答
3037 浏览

c# - MSBuild 不支持“.vdproj”,无法在 Azure CI/CD 管道中构建

我在解决方案中有一个 Windows 服务设置项目 (.vdproj),在构建管道期间它被 MS 构建忽略了。如何强制 MS 构建将其编译为 MSI?

0 投票
0 回答
184 浏览

visual-studio-2015 - 如何在没有 Internet 连接的情况下安装 Visual Studio 2015 vdproj 扩展

我正在尝试为 Visual Studio 2015 安装 vdproj 扩展。目标计算机没有互联网连接。最初安装 Visual Studio 时,可以使用以下命令创建脱机安装程序, vs_enterprise.exe --layout c:\vslayout

有没有办法用 VS 扩展做同样的事情?

从 Visual Studio Marketplace 下载了 5Mb VSI_bundle.exe(Microsoft Visual Studio 2015 安装程序项目),但由于没有 Internet 连接,安装失败。

0 投票
1 回答
58 浏览

vdproj - 在 .vdproj(Visual Studio 安装程序)文件中添加大量文件

我的问题是:我有一个 VB .NET 项目,安装项目是用旧的可怜的“Visual Studio Installer”制作的。我目前使用的 Visual Studio 版本是 2015。现在我需要在安装程序项目中插入大量文件,来自不同的目录,并且 IDE 不允许我在子目录中添加多个文件,只需简单“复制并粘贴到”。显然,我必须在文件系统中手动创建我希望在最终安装中拥有的每个单一目录。我已经做了一个小程序,它以编程方式将这些文件插入到主项目文件(.vbproj)中,这只是一个 xml 文件,但 .vdproj 文件似乎更“棘手”,它包含 GUID 编号,如 9F6F8455- 1EF1-4B85-886A-4223BCC8E7F7 我不确定我 d想纠结。有人处理过这样的问题吗?

0 投票
1 回答
870 浏览

jenkins - 错误:验证时发生错误。使用 devenv 和 jenkins Visual Studio 2019 构建时 HRESULT = '8000000A'

在构建包含一些 Windows 服务和其他 c# 和 vb.net dll 的安装包(vdproj 文件)时,我们收到以下错误。这是使用 vs2019 企业版

错误:验证时发生错误。HRESULT = '8000000A'

这是使用 Jenkins 构建时,我们以运行 jenkins 的用户身份登录并运行注册表修复对此无效。

我还包含了这篇文章中的批处理文件

这些都不起作用。这会阻止我们的 CI 工作并导致我们延迟。如果您以用户身份登录并在 Visual Studio 中构建,它工作正常,如果您在开发机器上构建,也会发生同样的事情。

有什么想法或建议吗?