【问题标题】:How to build and deploy a visual studio solution with multiple projects如何使用多个项目构建和部署 Visual Studio 解决方案
【发布时间】:2015-04-16 13:57:33
【问题描述】:

到目前为止,我一直在使用/练习 Visual Studio (VS) 来创建、编译和部署单个项目的解决方案。这很简单,至少对我来说。您只需转到 ..\bin\release 文件夹并压缩其中的所有文件,其中还包含所有依赖项。

现在我正在研究多个项目的解决方案。我有一个具有以下解决方案安排的 Windows 服务项目。

解决方案-服务XYZ

  • ServiceXYZ (exe)
  • 项目 1 (dll)
  • Project2 (dll)
  • Project3 (dll)
  • Lo​​g4net

我将 ServiceXYZ 设置为启动项目。它还引用了项目 1 到 3,每个项目还引用了一个外部 DLL。每个项目中的构建路径是\bin\Release。

构建和部署此 Windows 服务的最佳方式是什么?构建解决方案后,是否需要手动将每个项目中的每个 DLL 和服务项目中的 EXE 复制到文件夹并压缩?我想我可以将每个项目中的构建路径设置为一个公共文件夹,但这似乎不对。

ServiceXYZ\bin\release 文件夹似乎包含所有依赖项,EXE 文件包括 app.config 和 serviceXYZ.exe.config。是因为这个项目是启动项目吗?另外,我只想要 serviceXYZ.exe.config,而不是 app.config,因为它可能会使用户感到困惑。我想我不必为部署复制它。

将 log4net 添加到此组合中,现在我正在关注日志文件在哪里以及 log4net.config 应该在哪里。

为整个解决方案设置输出目录以便所有 DDL、EXE 和 log4net.config 以及 mylog.log 都位于一个位置的最佳方法是什么?

谢谢

【问题讨论】:

    标签: c# visual-studio windows-services log4net build-process


    【解决方案1】:

    当您将.EXE 文件添加到您的项目时,请查找它们的属性。在那里你会找到一个属性CopyToOutputDirecory。将其设置为TRUE

    当您添加引用时,.dlls,查找它们的属性。在那里你会找到一个属性CopyLocal。将其设置为TRUE

    其他文件也一样,你应该得到一个属性Copy To Output Directory

    当您将另一个项目添加到当前项目时,将其输出目录设置为与当前相同。表示两个项目的输出目录必须相同。

    【讨论】:

    • 看来我仍然需要手动将示例中的项目 1,2 和 3(来自项目本身及其依赖项的 DLL)的 DLL 复制到输出目录。我对吗?输出目录在哪里?是EXE项目的bin\Release文件夹吗?
    • @hexterminator 编辑了我的答案。然后我尝试将另一个项目添加到现有项目中,应用两个项目的答案中提到的步骤,它们构建在同一个输出目录中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多