Visual Studio 使用通用依赖项设置具有两个主要输出的项目

oknrviil  于 2022-11-25  发布在  其他
关注(0)|答案(3)|浏览(170)

我在visual studio中有一个解决方案,有4个项目- 2个windows窗体应用程序,一个类库和一个安装项目。
两个windows窗体应用程序都引用了类库项目。
我的安装项目包括两个windows窗体应用程序的主要输出,并且检测到的依赖项包括类库。
我已经将一个主要输出放在应用程序文件夹中,另一个放在子文件夹中。问题是类库程序集只安装在应用程序文件夹目录中,但我还需要它在子目录中,否则其中一个windows窗体应用程序将无法运行。我如何才能将它安装在两个位置?是否可以不手动添加程序集?

trnvg8h3

trnvg8h31#

简单的解决方案是将这两个. exe文件安装在它们需要运行的.dll文件夹中。如果需要,可以将第二个.exe文件的快捷方式放在子文件夹中。

2jcobegt

2jcobegt2#

希望这仍然是相关的。这是我是如何做到的。假设所有的依赖关系都被复制到您的项目的输出目录:
1.右键单击添加〉装配...
1.转到项目输出目录并选择所需的dll
1.删除重复项(如果有)

7gcisfzg

7gcisfzg3#

很容易:
对于每个需要引用某些程序集并在2个不同位置使用其中每个程序集的安装项目,请创建2个MergeModuleProjects。第一个包含与其中一个程序集位置有关的文件系统,另一个包含与另一个程序集位置有关的文件系统。这样,您最初拥有的安装项目将仅引用这2个MergeModuleProjects。setup project vs merge module projct
示例:Setup1具有以下文件系统:

folder1
{
  folder2
  {
    assembly1
  }
  folder3
  {
    asembly3
  }
}

然后用下面的结构替换上面的结构:
Setup1具有以下文件系统:(无)设置1引用合并模块1和合并模块2合并模块1具有以下文件系统:

folder1
{
  folder2
  {
     assembly1
  }
}

MergeModule2具有以下文件系统:

folder1
{
   folder3
   {
     assembly1
   }
}

相关问题