visual-studio-2010 - 在安装项目中包含文件依赖项

标签 visual-studio-2010 dll dependencies windows-installer

如何确保项目中的文件包含在安装程序创建的应用程序目录中?

  • 或者换一种说法:如何在安装项目中包含文件依赖项?

  • 我的 VB.NET (2010) 项目中有一个 DLL:TwinCAT.Ads.dll [has include] 有自己的依赖:TcAds.dll [在我的项目中没有包含任何地方],即 不是 .NET 程序集。

    我让编译器确保它会吐出 TcAds.dll编译时通过将其作为现有项目添加到我的项目中,然后将其构建操作设置为“嵌入式资源”并将其设置为始终复制到输出目录,从而进入 bin 输出文件夹。

    现在我已经准备好发布了,我已经制作了一个 Windows 安装项目。
    请不要建议使用 WIX 或其他任何东西,这是我必须使用的。

    问题是 DLL 的这种弃用不会显示为依赖项,因此不会包含在安装程序中。安装后,程序运行,找不到DLL,弹了出来。
  • 我尝试将其作为资源添加到项目中,但无济于事。 (项目-属性-资源)
  • 无法将其构建操作设置为编译(它给出错误“无法打开模块文件...”)
  • 构建操作“资源”甚至没有将它包含在 bin 文件夹中,更不用说安装程序
  • 将其作为引用添加 不是 工作(它给出错误“无法添加对 ... 的引用。请确保该文件是可访问的,并且它是有效的程序集或 COM 组件。”)

  • 当然必须有一种简单的方法来确保您想要的任何文件都包含在安装目录中?

    最佳答案

    您可以将任意文件添加到安装项目中。

    enter image description here

    我创建了一个安装项目并将 c++ ddl 文件添加到输出。它在安装项目文件中有以下部分。您可以通过这种方式轻松地将您的 dll 文件添加到您的项目中。如果您需要,您可以编写构建后脚本将此文件复制到合适的位置,以便安装项目可以找到它。

    "File"
            {
                "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_06335985DF0F4EF3A600861437AA6CDF"
                {
                "SourcePath" = "8:..\\Debug\\CppWin32.dll"
                "TargetName" = "8:CppWin32.dll"
                "Tag" = "8:"
                "Folder" = "8:_1E4113F2F81040508FD1CDA54F242F25"
                "Condition" = "8:"
                "Transitive" = "11:FALSE"
                "Vital" = "11:TRUE"
                "ReadOnly" = "11:FALSE"
                "Hidden" = "11:FALSE"
                "System" = "11:FALSE"
                "Permanent" = "11:FALSE"
                "SharedLegacy" = "11:FALSE"
                "PackageAs" = "3:1"
                "Register" = "3:1"
                "Exclude" = "11:FALSE"
                "IsDependency" = "11:FALSE"
                "IsolateTo" = "8:"
                }
            }
    

    查看我的构建输出。
    ------ Build started: Project: ConsoleApplication1, Configuration: Debug x86 ------
      ConsoleApplication1 -> P:\denemeler\setupDeneme\Setup1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
    ------ Starting pre-build validation for project 'Setup1' ------ 
    ------ Pre-build validation for project 'Setup1' completed ------
    ------ Build started: Project: Setup1, Configuration: Debug ------
    Building file 'P:\denemeler\setupDeneme\Setup1\Setup1\Debug\Setup1.msi'...
    Packaging file 'CppWin32.dll'...
    Packaging file 'ConsoleApplication1.exe'...
    ========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ==========
    

    关于visual-studio-2010 - 在安装项目中包含文件依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529604/

    相关文章:

    java - 有没有办法找出一个类在哪个 Maven Artifact 中?

    c# - 在 C# 项目的 Visual Studio 中,要中断的异常列表存储在哪里?

    c++ - 在纯 native 代码中使用托管对象

    c++ - 将目前作为独立可执行文件开发的 C++ 项目转换为 DLL

    java - 我如何查看从哪个URL Gradle获得依赖关系?

    javascript - 有没有办法从 .js 文件自动安装 node.js 依赖项?

    visual-studio-2010 - Qt MinGW WIN32 到 Visual Studio 2010

    c++ - 如何在 visual studio 2010 中使用 boost::multiprecision::float128

    c++ - 在自定义库位置的情况下使用 dlopen 加载依赖库

    c++ - 第三方库需要我的应用程序所用的同一 DLL 的不同版本