【问题标题】:InstallShield LE - 3rd party dll in localized language folderInstallShield LE - 本地化语言文件夹中的第 3 方 dll
【发布时间】:2023-08-25 08:24:01
【问题描述】:

当我在 VS 2012 中使用 InstallShield LE 创建安装项目时,我将需要安装的项目添加到“文件”选项卡中(在安装项目中指定应用程序数据)。我还需要应用程序的本地化资源,所以我选择了本地化资源。
安装后,第 3 方 dll 全部复制到语言文件夹中,而不是应用程序的主文件夹中。因此应用程序找不到它们,也无法启动事件。
我尝试取消选中本地化资源输出的依赖项(构建时扫描的依赖项),但它们在主输出中也未选中。

如果我在输出中添加第 3 方 dll,它似乎可以工作,但这并不好,因为它硬编码了 dll 的路径,迫使我的团队中的每个成员在每次需要构建它时都更改设置项目。

有关如何将依赖项安装在正确位置的任何想法?

编辑:
经过进一步测试,问题似乎是随机的,在某些情况下它会正确创建路径,但在大多数情况下不是。

【问题讨论】:

    标签: c# winforms installshield


    【解决方案1】:

    假设设置具有以下输出:

    MainProject.Debug 符号
    MainProject.本地化资源
    MainProject.Primary 输出
    AuxProject.Debug 符号
    AuxProject.PrimaryOutput
    AnotherProject.PrimaryOutput

    如果右键单击“MainProject.Localized 资源”和“MainProject.Primary 输出”并选择“Dependencies from scan at build...”,您可以看到它们具有相同的依赖关系。这是我的问题的原因(在本地化文件夹中复制的依赖项)。
    为了解决这个问题,我转到 MainProject.Localized 资源,右键单击它,选择属性 -> COM & .NET 设置选项卡 -> 将“扫描时生成”设置为“无” -> 确定。
    现在它在 InstallShield builds DVD-5 和 Single Image(已测试)上构建设置并正确安装。

    【讨论】:

    • 非常感谢您发布解决方案!