Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用多个项目构建和部署visual studio解决方案_C#_Visual Studio_Windows Services_Log4net_Build Process - Fatal编程技术网

C# 如何使用多个项目构建和部署visual studio解决方案

C# 如何使用多个项目构建和部署visual studio解决方案,c#,visual-studio,windows-services,log4net,build-process,C#,Visual Studio,Windows Services,Log4net,Build Process,到目前为止,我一直在使用/实践VisualStudio(VS)通过单个项目创建、编译和部署解决方案。至少对我来说,这很直截了当。您只需转到..\bin\release文件夹并压缩其中的所有文件,这些文件也包含所有依赖项 现在我进入了多个项目的解决方案。我有一个windows服务项目,具有以下解决方案安排。 解决方案服务XYZ ServiceXYZ(exe) 项目1(dll) 项目2(dll) 项目3(dll) Log4net 我将ServiceXYZ设置为启动项目。它还引用项目1到3,每

到目前为止,我一直在使用/实践VisualStudio(VS)通过单个项目创建、编译和部署解决方案。至少对我来说,这很直截了当。您只需转到..\bin\release文件夹并压缩其中的所有文件,这些文件也包含所有依赖项

现在我进入了多个项目的解决方案。我有一个windows服务项目,具有以下解决方案安排。

解决方案服务XYZ

  • ServiceXYZ(exe)
  • 项目1(dll)
  • 项目2(dll)
  • 项目3(dll)
  • Log4net
我将ServiceXYZ设置为启动项目。它还引用项目1到3,每个项目都引用外部DLL。每个项目中的生成路径都是\bin\Release

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

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

将log4net添加到这个组合中,现在我对日志文件在哪里以及log4net.config应该在哪里感到困惑

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


谢谢

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

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

与其他文件相同,您应该获得一个属性
复制到输出目录


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

似乎我仍然需要手动将上面示例中项目1、2和3的DLL(来自项目本身及其依赖项的DLL)复制到输出目录。我说得对吗?输出目录在哪里?这是EXE项目的bin\Release文件夹吗?@hextterminator编辑了我的答案。然后,我尝试将另一个项目添加到现有项目中,对这两个项目应用答案中提到的步骤,它们构建在相同的输出目录中。