如何构建和部署具有多个项目的可视化工作室解决方案

时间:2015-02-16 05:17:08

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

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

现在我开始涉及多个项目的解决方案。我有一个Windows服务项目,具有以下解决方案安排。

溶液ServiceXYZ

  • ServiceXYZ(exe)
  • Project1(dll)
  • Project2(dll)
  • Project3(dll)
  • log4net的

我将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都在一个位置?

由于

1 个答案:

答案 0 :(得分:0)

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

添加引用.dll时,查找其属性。在那里你会找到一个属性CopyLocal。将其设置为TRUE

对于其他文件,您应该获得一个属性Copy To Output Directory

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