C# 包含dll项目和exe项目的Visual Studio解决方案的部署

C# 包含dll项目和exe项目的Visual Studio解决方案的部署,c#,visual-studio,deployment,C#,Visual Studio,Deployment,我有一个VisualStudio2010解决方案,它包含3个项目:dll项目、可执行项目和安装程序项目 我正在同时处理dll和可执行文件。可执行文件只是库的前端。在VisualStudio中开发这两个程序时,我只是在可执行文件中添加了对dll项目的引用,效果很好 我遇到的问题是部署。理想情况下,dll将被编译并安装在可执行文件的子目录中。为我的安装程序使用“VisualStudio安装程序-安装向导”项目模板似乎没有给我提供所需的选项 通过在不同的项目中开发后端和前端,我是否犯了错误?我应该采取

我有一个VisualStudio2010解决方案,它包含3个项目:dll项目、可执行项目和安装程序项目

我正在同时处理dll和可执行文件。可执行文件只是库的前端。在VisualStudio中开发这两个程序时,我只是在可执行文件中添加了对dll项目的引用,效果很好

我遇到的问题是部署。理想情况下,dll将被编译并安装在可执行文件的子目录中。为我的安装程序使用“VisualStudio安装程序-安装向导”项目模板似乎没有给我提供所需的选项


通过在不同的项目中开发后端和前端,我是否犯了错误?我应该采取什么步骤来部署编译后的dll和可执行文件?我可能在这个问题上完全错了,所以如果这似乎是倒退的话,请帮助我理解一种更好的方法。尽管我在大学里学到了很多编程知识,但当我真的想部署我的软件时,没有人会去检查我做了什么。

这就是你需要做的

在解决方案上,创建新项目>其他项目类型>单击设置和部署

在应用程序文件夹>右键单击>然后添加前端应用程序>构建


关于

由于DLL项目是从EXE项目显式引用的,因此它会自动复制到EXE的生成文件夹(即bin\Debug或bin\Release)中,并被视为EXE项目“主要输出”的一部分。因此,您只需要引用安装项目中的EXE


安装的DLL将与EXE位于同一文件夹中。如果开发计算机上没有DLL,为什么要将其安装在用户计算机上的其他文件夹中?如果动态加载并使用反射,则不要从EXE引用它,而是从安装项目引用它,这样您就可以设置所需的任何目标文件夹。

是的,我明白您的意思。我不需要在任何特定的目录中使用dll,我只是运行了构建/安装过程,并成功地将dll和可执行文件安装在同一目录中,这很好。现在唯一的问题是,从“开始”菜单启动我的程序会产生一个错误,即Windows“无法加载文件或程序集的SimTools、1.0.0.0版等,或其依赖项之一。系统找不到指定的文件。”但是,请注意,如果我在资源管理器中浏览到可执行文件,我可以运行程序,它可以正常运行。我也解决了这个问题,这只是我的快捷方式实际指向的问题。VisualStudio看起来非常强大,但构建过程似乎相当复杂。