我在visual studio中有一个解决方案,有4个项目- 2个windows窗体应用程序,一个类库和一个安装项目。
两个windows窗体应用程序都引用了类库项目。
我的安装项目包括两个windows窗体应用程序的主要输出,并且检测到的依赖项包括类库。
我已经将一个主要输出放在应用程序文件夹中,另一个放在子文件夹中。问题是类库程序集只安装在应用程序文件夹目录中,但我还需要它在子目录中,否则其中一个windows窗体应用程序将无法运行。我如何才能将它安装在两个位置?是否可以不手动添加程序集?
我在visual studio中有一个解决方案,有4个项目- 2个windows窗体应用程序,一个类库和一个安装项目。
两个windows窗体应用程序都引用了类库项目。
我的安装项目包括两个windows窗体应用程序的主要输出,并且检测到的依赖项包括类库。
我已经将一个主要输出放在应用程序文件夹中,另一个放在子文件夹中。问题是类库程序集只安装在应用程序文件夹目录中,但我还需要它在子目录中,否则其中一个windows窗体应用程序将无法运行。我如何才能将它安装在两个位置?是否可以不手动添加程序集?
3条答案
按热度按时间trnvg8h31#
简单的解决方案是将这两个. exe文件安装在它们需要运行的.dll文件夹中。如果需要,可以将第二个.exe文件的快捷方式放在子文件夹中。
2jcobegt2#
希望这仍然是相关的。这是我是如何做到的。假设所有的依赖关系都被复制到您的项目的输出目录:
1.右键单击添加〉装配...
1.转到项目输出目录并选择所需的dll
1.删除重复项(如果有)
7gcisfzg3#
很容易:
对于每个需要引用某些程序集并在2个不同位置使用其中每个程序集的安装项目,请创建2个MergeModuleProjects。第一个包含与其中一个程序集位置有关的文件系统,另一个包含与另一个程序集位置有关的文件系统。这样,您最初拥有的安装项目将仅引用这2个MergeModuleProjects。setup project vs merge module projct
示例:Setup1具有以下文件系统:
然后用下面的结构替换上面的结构:
Setup1具有以下文件系统:(无)设置1引用合并模块1和合并模块2合并模块1具有以下文件系统:
MergeModule2具有以下文件系统: