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