【问题标题】:Wix project references on multiple destination locations how?多个目的地位置上的 Wix 项目参考如何?
【发布时间】:2011-05-09 22:11:21
【问题描述】:

我正在为我正在处理的一个项目设置 wix。 我决定尝试一下wix,但到目前为止进展不顺利。 我可能已经阅读了所有教程并在网上搜索但没有成功。

这是我的情况: 一个安装程序应安装在程序文件应用程序文件夹中
1.) Windows 窗体应用程序
2.) Windows 应用程序使用的 Web 应用程序
3.) web 和 win 应用程序使用的共享 lib1
4.) web 和 win 应用程序使用的共享 lib2
...等

我正在使用项目引用来收集带有热量的项目输出。 我已经给出了每个项目的目录 ID,所以我以后可以在实际安装位​​置使用它作为参考。 看起来我不能在多个位置拥有相同的项目输出 我也不能多次引用同一个项目。

如何制作在多个目标位置使用项目输出的安装程序。 这是我的 product.wxs 中的示例

        <!-- Define Directory Structure -->
    <Directory Id="TARGETDIR" Name="SourceDir">

        <!-- ProgramFiles -->
        <Directory Id="ProgramFilesFolder">
            <Directory Id="dirManufacturer" Name="TEST_[Manufacturer]">
                <Directory Id="INSTALLLOCATION" Name="TEST_[ProductName]">

                    <!-- Filled With Referenced project -->
                    <Directory Id="dirControl" Name="Control">
                        <Directory Id="dirControlOutput" />
                        <Directory Id="dirSearchAndIndexOutput" />
                        <Directory Id="dirControlLib" />
                        <Directory Id="dirControlAndWebLib" />
                        <Directory Id="dirLuceneAnalyzersOutput" />
                    </Directory>

                    <!-- Filled With Referenced project -->
                    <Directory Id="dirWeb" Name="Web">
                        <Directory Id="dirWebOutput" />
                        <Directory Id="dirWebBin" Name="bin">
                            <Directory Id="dirUrlRewriterOutput" />
                            <Directory Id="dirSearchAndIndexOutput" />
                            <!-- TODO: Fix This
                            <Directory Id="dirSearchAndIndexOutput" />
                            <Directory Id="dirControlAndWebLib" />
                            <Directory Id="dirLuceneAnalyzersOutput" />
                            -->
                        </Directory>
                    </Directory>

                </Directory>
            </Directory>
        </Directory>

        <!-- StartMenu -->
        <Directory Id="ProgramMenuFolder">
            <Directory Id="dirProgramsMenu" Name="TEST_[ProductName]">
            </Directory>
        </Directory>

        <!-- CommonApplicationData -->

    </Directory>

我真的很想了解这一切是如何工作的,但我发现的一切都表明这种情况要么是不可能的,要么需要直接硬手动引用文件。

我的总体想法是让 Visual Studio 解决方案自动为每个源更改构建设置。

感谢您的帮助和建议!

戈兰

【问题讨论】:

    标签: wix


    【解决方案1】:

    从 3. 和 4. 在我收集的描述中,您需要将相同的文件安装在不同的地方,对吧?

    你可以像下面的例子那样做——相同的文件(构建机器上的path\to\lib1.dll)将在目标机器上安装两次,分别是App\lib1.dll和Web\lib1.dll .您只需要引用相同源文件的 2 个不同组件。

    <Directory Id="AppDir" Name="App">
        <Component Id='lib1_app.dll' Guid='*'>
          <File Id='lib1_app' Name='lib1.dll' Source='path\to\lib1.dll' KeyPath='yes'>
        </Component>
    </Directory>
    
    <Directory Id="WebDir" Name="Web">
        <Component Id='lib1_web.dll' Guid='*'>
          <File Id='lib1_web' Name='lib1.dll' Source='path\to\lib1.dll' KeyPath='yes'>
        </Component>
    </Directory>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2016-03-16
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多