问题 更改Visual Studio的默认构建输出路径


有没有很好的理由从默认的“bin \ debug”修改项目的构建输出路径?将所有项目指向公共构建输出位置的解决方案是否有任何好处?


12095
2018-04-08 22:09


起源



答案:


是的,我通常这样做 每时每刻。正如Harry所说,它减少了磁盘空间的使用。这对我来说真的不是什么大问题,因为磁盘空间非常便宜,但它可能会让你担心。我这样做的真正原因是为了更好地反映部署的外观。这样做的最好方法是拥有一个 物业单 它将输出目录修改为 $(SolutionDir)/build/bin。在此之后,我将工作目录设置为 $(SolutionDir)/build,这是整个结构,与部署的相同,而不是在各个项目目录中展开。

build
|-- bin
|   |-- foo.exe
|   |-- libfoo.dll
|   `-- libbar.dll
|-- plugins
|   |-- extender.py
|   `-- something.lua
`-- skins
    |-- default.skin
    `-- white-and-gold.skin

总的来说,为构建的东西(而不是源代码)建立一个孤立的目录是一件好事。它简化了编写自定义构建步骤,因为您知道最终输出的位置并简化与版本控制系统的集成,因为您可以将其设置为忽略整个目录,而不是绕过设置 ignore 对全部 .exe.lib.so.dll 而且每个小目录都是如此。


10
2018-04-08 22:24



就像一个注释,我的真正观点更多的是Visual Studio用复制依赖项复制相同文件所花费的时间 - 磁盘空间量是一种辅助。但是我想我的回答方式给出了相同的权重。 - Harry Steinhilber


答案:


是的,我通常这样做 每时每刻。正如Harry所说,它减少了磁盘空间的使用。这对我来说真的不是什么大问题,因为磁盘空间非常便宜,但它可能会让你担心。我这样做的真正原因是为了更好地反映部署的外观。这样做的最好方法是拥有一个 物业单 它将输出目录修改为 $(SolutionDir)/build/bin。在此之后,我将工作目录设置为 $(SolutionDir)/build,这是整个结构,与部署的相同,而不是在各个项目目录中展开。

build
|-- bin
|   |-- foo.exe
|   |-- libfoo.dll
|   `-- libbar.dll
|-- plugins
|   |-- extender.py
|   `-- something.lua
`-- skins
    |-- default.skin
    `-- white-and-gold.skin

总的来说,为构建的东西(而不是源代码)建立一个孤立的目录是一件好事。它简化了编写自定义构建步骤,因为您知道最终输出的位置并简化与版本控制系统的集成,因为您可以将其设置为忽略整个目录,而不是绕过设置 ignore 对全部 .exe.lib.so.dll 而且每个小目录都是如此。


10
2018-04-08 22:24



就像一个注释,我的真正观点更多的是Visual Studio用复制依赖项复制相同文件所花费的时间 - 磁盘空间量是一种辅助。但是我想我的回答方式给出了相同的权重。 - Harry Steinhilber


我更改输出目录的主要原因是减少重复程序集的数量和Visual Studio必须创建的文件副本数。如果项目A引用项目B,项目C引用项目A和B,那么Studio必须构建A,将A复制到B并构建B,然后将A和B复制到C并构建C.现在有3个程序集A副本,程序集B的两个副本,以及C中的一个副本。将输出指向单个目录,Visual Studio只构建A,然后是B,然后是C.每个副本。您可以想象随着项目数量和依赖项复杂性的增加,构建所消耗的磁盘空间和时间会有多少。


2
2018-04-08 22:14





作为一个例子,我有一个updater.exe,应该与“其他”程序一起分发。所以我将构建路径设置为“其他”程序构建路径。这样我知道我总是有最新的“updater.exe”它应该在哪里。

这只是一个原因。


0
2018-04-08 22:21