Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个目标位置上的Wix项目引用如何?_Wix - Fatal编程技术网

多个目标位置上的Wix项目引用如何?

多个目标位置上的Wix项目引用如何?,wix,Wix,我正在为一个项目的wix设置而挣扎。 我已经决定尝试一下,但到目前为止进展并不顺利。 我可能已经阅读了所有的教程,并且在网上搜索也没有成功 以下是我的情况: 应在程序文件应用程序文件夹中安装一个安装程序 1.)Windows窗体应用程序 2.)windows应用程序使用的Web应用程序 3.)web和win应用程序使用的共享lib1 4.)web和win应用程序使用的共享lib2 ... 等 我使用项目引用来收集项目输出。 我已经给出了每个项目目录id,以便以后在实际安装位置使用它作为参考。 看

我正在为一个项目的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>

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

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

谢谢你的帮助和帮助


戈兰从3号开始。四,。在我收集的描述中,您需要在不同的位置安装相同的文件,对吗

您可以像下面的示例中那样执行此操作-同一文件(生成计算机上的\lib1.dll路径)将在目标计算机上安装两次,分别为App\lib1.dll和Web\lib1.dll。您只需要两个引用同一源文件的不同组件

<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>