【问题标题】:Where can one acquire the Visual J# Merge Module for use with Visual Studio 2008?在哪里可以获得用于 Visual Studio 2008 的 Visual J# 合并模块?
【发布时间】:2009-02-27 00:56:22
【问题描述】:

我继承了一个依赖于第三方库的应用程序,而后者又依赖于 Visual J#.NET。

该应用程序之前是在 Visual Studio 2005 上开发的,我已经在 VS2008 上成功构建了它。

在其他组件中,它包括一个部署项目,该项目将几个可执行文件(加上依赖项,包括此库)构建到 Windows 安装程序 MSI 中。

由于 VJ# 依赖性,部署项目(显然)使用 VJSharpRedist_x86.msm 合并模块。此合并模块似乎检测到 VJ# 包的存在,如果未安装,则提示用户从 Web 下载它。

但目前我找不到包含 VJ# 的合并模块的包。尽管项目构建没有错误,但生成的 MSI 无法安装。它启动,未能检测到机器上正确安装的 VJ#,然后显示一个对话框,其中只有文本“1:”和两个按钮“是”和“否”。点击“是”打开部署项目中指定的 url,点击“否”取消安装。

(打包到 MSI 中的可执行文件可以正常工作,如果它们被手动复制到机器上,但 MSI 拒绝安装它们。)

到目前为止,我已经安装了:

有人知道合并模块的位置吗?或者如何在 VS2008 中正确处理这种启动条件?

编辑:澄清。

【问题讨论】:

  • 如果您从部署项目中手动排除 J# MSM 会发生什么?如果您丢失了依赖项检查,但获得了有效的 MSI,那么您将领先于现在。
  • @Bevan:排除它是不够的(相同的症状),但我最终找到了编辑启动条件的位置(右键单击部署项目 -> 查看 -> 启动条件)并将其删除。我现在处于你描述的位置,而且由于所有目标机器都已经有 VJ#,这已经足够了。

标签: .net visual-studio j# visualj#


【解决方案1】:

要将Visual J# .NET Redistributable Package 2.0 添加到项目先决条件中,请复制:

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\VJSharpRDP

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

然后您需要进入您的部署项目,打开Launch Conditions Editor 并删除Visual J# .NET 的条件(这就是删除可怕的空白对话框的原因)。

此时 setup.exe 确保在您的项目 msi 启动之前安装了 J#

【讨论】:

  • +1 这听起来正是我所追求的。那个项目在几周前就完成了,我可能再也不需要那个了,但以防万一,知道是件好事。我会在不久的将来某个时候对此进行测试,如果它符合我的预期,请接受它...
  • 看来我不会去测试了...无论如何我都会接受它,因为它看起来是正确的;如果我发现不同,我会重新审视这个......
【解决方案2】:

这可能不是你想听到的答案,而是 VJSharpRedist_x86.msm isn't supposed to be used for redistribution:

不得使用 VJSharpRedist_x86.msm 重新分发 Microsoft Visual J# 可再发行包

Visual J# 的合并模块 可再发行包不是 可再发行的合并模块。这是 作为一种机制添加到项目中 检查依赖关系并被排除在外 默认情况下。

http://msdn.microsoft.com/en-us/library/8f5w2e95(VS.80).aspx

看起来 MSM 只是一个包装器,用于检查目标机器上是否预安装了适当的 J# 运行时。您可能会发现,您已经下载的 Visual J# Redist 就足够了。

【讨论】:

  • 我已经看到了,我很好...我知道我们必须在目标机器上手动安装 vjredist.exe...问题是生成的 MSI 混乱由于缺少模块而上升;它不检查运行时,它会显示一个对话框,其中只有文本“1:”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 1970-01-01
相关资源
最近更新 更多