问题标签 [setup-project]

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 投票
2 回答
1287 浏览

visual-studio-2008 - VS2008 安装项目 - 无修复选项

无论如何禁用修复选项,以便如果用户再次运行 msi,它会自动卸载而不提示修复/删除选项?

编辑:这是针对受控的公司环境,并已作为要求传递下来。

0 投票
10 回答
102156 浏览

c# - 如何在 C# 中以编程方式安装 Windows 服务?

我的 VS 解决方案中有 3 个项目。其中一个是 Web 应用程序,第二个是 Windows 服务,最后一个是我的 Web 应用程序的安装项目。

我想要的是在我的安装项目中安装 Web 应用程序结束时,在我的自定义操作中尝试安装我的 Windows 服务,因为那时我已经有了程序集的位置。

0 投票
1 回答
2569 浏览

.net - 安装项目未安装引用的项目内容文件

我有一个 Windows 服务项目 A,它依赖于类库项目 B。项目 B 的 XML 文件设置为Content, Copy if newer。在bin\Debug项目A的文件夹中,这些内容文件复制成功。

编辑(更多失败):

Primary output安装很好。我无法Content Files安装。

编辑(获胜):

我错了,我Primary Output来自项目 A 并添加了一个自定义操作来安装它,因为它是服务 exe。Content files来自项目 B 只需包含在安装项目中......而不是作为自定义操作“安装”。

0 投票
5 回答
2176 浏览

visual-studio - 在 Visual Studio 安装项目中安装 100 个文件的最简单方法是什么

我有一个标准的 c# 应用程序,它充当“R”统计引擎的 GUI 前端。“R”由大约 50 个不同文件夹中的大约 600 个文件组成,可以通过 xcopy 部署在机器上“安装”。

我想将 R 引擎和我的 c# gui 打包到一个 setup.exe 中,这样用户就不需要先安装 R,然后再安装我的 c# 应用程序。

我知道我可以制作一个安装项目,然后一个一个地添加 R 文件,但是添加所有 600 个文件将非常乏味!

有没有更简单的方法来做我想做的事?我可以添加单个R文件夹并自动添加子文件夹和文件以节省我将它们一一添加吗?或者也许在我的设置项目中执行一个解压缩过程,这将一次性解压缩 R 引擎?

0 投票
4 回答
6877 浏览

c# - 如何在安装时设置应用程序设置(通过安装程序类)

我有一个具有 Installer 类的 Visual Studio 安装项目。在安装程序类中,我设置如下:

问题是,即使我知道这段代码正在执行(我正在做其他事情),设置永远不会设置!

消息框确实表明正在设置该值,但是当我转到.config文件时,该值仍然是空白的!

任何人有任何想法为什么和/或可能的解决方法?

0 投票
2 回答
104 浏览

visual-studio - 安装 .msi 时的额外空间

我的定制 .msi 中有额外的空间。要安装的数据大约有 600MB,安装程序说它需要 1.4 GB。切换到另一个位置,然后预定的位置(例如从 C:\Program Files\My_App 到 F:\My_App)表明它总是需要大约 800 MB在 Windows 分区上,在我的情况下是额外的空间。关于为什么会发生这种情况的任何想法?

这也会导致 64 位操作系统上的安装错误吗?我只将它安装在 32 位操作系统上,一切都很好,但我的一位同事在上述类型上安装它时遇到问题。

0 投票
2 回答
1828 浏览

windows-installer - Visual Studio 安装程序 exe 版本与属性版本不同

我创建了一个 Visual Studio 安装项目并将版本设置为 1.1.5。当我构建我的安装项目时,setup.exe 文件版本是 9.0.21022.8。如何从我的安装项目中检索 1.1.5 文件版本?

0 投票
4 回答
5339 浏览

vba - 如何将 COM 公开的 .NET 项目添加到 VB6(或 VBA)引用对话框?

根据Phil Wilson撰写的特殊文章Build and Deploy a .NET COM Assembly ,我创建了一个暴露给 COM 的 .NET 程序集。

在 .NET 程序集为 COM 正确注册的意义上,一切正常,并且编译后的 COM 代码可以毫无问题地调用它。

唯一奇怪的是,在使用 VB 6.0 或 VBA 时针对 COM 公开的 .NET 程序集进行开发需要程序员“浏览”到相关 .tlb 文件的确切文件位置,之后一切正常。也就是说,类库不会直接显示在“引用”对话框中,因此您必须浏览到文件位置。

同样,COM 互操作方面确实 100% 有效;但是,我认为必须有一些设置可以使库在 VB 6.0 和 VBA 的“引用”对话框中直接可见。

有谁知道这个设置是什么?或者这是否应该通过注册而自动为我发生?

非常感谢您的任何建议...

麦克风

编辑/更新

要回答 jpoh 关于我是否使用 /codebase 开关的问题,我使用的是 .msi 安装包,而不是明确使用 RegAsm。程序集已正确注册,这可以从以下事实看出:在 HKCR\CLSID{myGUID}\InprocServer32 中,“CodeBase”键正确地保存了程序集的完整路径。编译后的 COM 组件对这个 dll 执行得很好,只有在使用 VB 6.0 或 VBA 对其进行开发时,它们才不会出现在引用对话框中。因此,我需要“浏览”到正确的文件位置,之后它可以 100% 正常工作。

更新#2

经过进一步研究,似乎虽然类 GUID 已正确注册,但我的 .tlb 文件未注册。我不知道为什么不。注册 .tlb 文件应该在 HKCR\Interface{myInterfaceGUID} 中为我的类所基于的接口放置一些注册表项,但这不会发生。奇怪的是,除了在 VB6 和 VBA 的引用对话框中的可发现性之外,这种缺少注册似乎并没有影响 dll 的功能。

安装项目中我的 .tlb 文件的属性似乎是正确的:“PackageAs”属性设置为“vsdpaDefault”,“Register”属性设置为“vsdrfCOM”。我很困惑为什么这不会成功地安装在目标机器上。

更新#3

好的,事实证明安装项目没有成功构建......尽管它报告“构建成功”。

实际上有一个构建警告(令人惊讶的是,警告,而不是错误)被报告为“无法为文件名'DotNetLibrary3.tlb'创建注册信息”。由于这是一个警告,而不是错误,因此编译说明“构建成功”并且错误列表没有打开。

跟踪这一点,当您在 Vista 是您的开发机器时尝试创建安装项目时,这似乎是一个问题,如下所述:

VS2008 Setup项目中COM typelib注册问题

这里描述了一个有点手动的修复:

反馈:无法为名为“filename”的文件创建注册信息

我还没有尝试修复,但我明天会,如果解决了我会报告。

更新#4

效果不太好……在 Vista 上运行时,按照该文章中的建议运行 RegCap.exe 似乎不起作用。由于 RegCap 实际上是由安装项目本身在创建 .msi 时在内部运行的,因此这并不奇怪。简而言之,安装项目几乎肯定会失败,因为它正在调用的 RegCap 命令失败了……所以直接调用 RegCap 没有任何帮助。

最重要的是,这只是尝试在 Vista 上创建安装包时的一个错误。或者,也许它是 Visual Studio 2008 和 Vista 的组合,我不确定。尝试相同的方法是在 Windows XP 上运行的 Visual Studio 2005 上创建一个安装项目,绝对没有任何问题。

很可能有一些修复程序可以在 Vista 和/或 Visual Studio 2008 上正常运行,但我无法找到它。对我来说更高效的是在 Windows XP 上使用 Visual Studio 2005 生成 COM 注册要求,然后将它们导入到我的 Visual Studio 2008 安装项目中。这些可以通过 regasm 导出为 .REG 文件,对 dll 使用 /regfile 开关,对 .tlb 文件使用 RegCap(在 W'XP 上运行!)。由于我的 COM 接口不会改变,我只需要这样做一次。

希望在 Vista 上运行时 Visual Studio 2008 中的这个问题将在某个时候得到纠正,但如果没有,希望这篇文章对发现自己处于相同情况的其他人有所帮助......

也可以看看:

如何在自动化服务器列表中安装并注册用 VB.NET 编写的 COM Server for Excel?

——迈克

0 投票
10 回答
9499 浏览

visual-studio-2008 - 包含文件夹中所有文件的 Visual Studio 安装项目

我们有一个设置项目,当前添加了来自不同 Visual Studio 项目的项目输出。我们想更改打包系统并使用一个文件夹,其中包含一堆准备在设置中部署的部署文件。
但这意味着我们需要一个一个地添加文件,并在每个版本有新文件时继续添加它们。
我在这个问题中看到我们无法添加带有 *.aspx 等规则的文件。
所以我正在考虑创建一个小工具,它将根据可用文件更改 vdproj 文件。你能帮我看看这个文件的格式吗?似乎有一些与包含的每个文件相关联的 GUID。
有没有人对如何做到这一点有更好的解决方案?
我们目前还没有考虑使用不同的设置工具,我们只是寻找一个简单的文件打包解决方案。

0 投票
1 回答
2458 浏览

installation - 如何在 VS 2003 安装项目的安装过程中在 %allusersprofile% 下创建一个文件夹?

在安装过程中,我需要在“%allusersprofile%/Program Data”下创建一个文件夹。

安装文件是使用 VS 2003 安装项目创建的,您可以在其中使用多个已知文件夹......但我看到没有一个映射到 %allusersprofile% 或“%allusersprofile%/Program Data”。

我认为创建一个“自定义文件夹”(在 VS 安装项目中)并将 TargetLocation 设置为 %allusersprofile% 它会起作用,但在安装过程中它说我没有该文件夹的权限(我确实有)。

您知道如何在 VS 安装项目中定位该文件夹吗?

另外...我在 Windows XP 中工作,因此 %allusersprofile% 映射到“C:\Documents and Settings\All Users”,但我想我应该在“Program Data”文件夹中创建我的文件夹。

在 Vista 中,%allusersprofile% 映射到“C:\ProgramData”,如果我直接在那里创建我的文件夹,它看起来是正确的。

知道如何针对这两个操作系统吗?

附加信息: 我正在尝试这样做以避免 Vista 中的新安全功能,其中应用程序至少在以普通用户身份运行时无法在 Program Files 文件夹下写入文件。所以我需要将可写文件放在“普通”文件夹中,而不是“每个用户”的基础上。