如何在一个文件夹中构建所有项目?
有没有办法将解决方案构建到单个文件夹中? 我在这个解决方案中有几个项目,每个项目都访问一个应该在当前目录中的配置文件。 我只是将每个项目的构建文件移动到一个,它仍然可以工作,但是,它看起来如此无组织和混乱。 我只是想知道还有其他方法可以做到这一点。
您可以在解决方案中的每个项目的设置中设置输出目录(如果我们是关于Visual Studio)。 菜单:项目 – >属性 – >构建 – >输出路径。 例如,我使用..\Build\
将项目构建到解决方案根目录的Build目录中。
您可以更改项目“输出路径”,默认情况下它是给定项目的bin目录。
右键单击每个项目,从上下文菜单中选择Properties
,然后选择Build
选项卡。 在Output
部分的底部更改Output path:
。 为每个项目设置相同的路径。
我同意你提出的意见,你不应该改变它。 相反,您可以创建后期构建操作(PS脚本),将所有文件从项目的bin目录复制到您指定的目录。
更新:
将此脚本设置为Post Build命令(Project的属性 – >构建事件选项卡 – >构建后事件命令行):
xcopy "$(TargetDir)*" "$(SolutionDir)Build" /s /i /Y
这篇MSDN文章解释了如何以一种漂亮,干燥的方式做到这一点: https : //blogs.msdn.microsoft.com/kirillosenkov/2015/04/04/using-a-common-intermediate-and-output-directory-for -您的溶液/
它允许您仅指定一次这些目录,并在多个项目中使用这些设置。
脚步:
-
在解决方案中创建一个common.props文件,该文件将指定并覆盖项目的输出和中间路径到公共目录(如“Solution / bin”)。 这是我在文章中找到的示例* .props文件:
$(MSBuildThisFileDirectory) Debug $(SolutionDir)\bin\$(Configuration)\ $(OutputPath) $(OutputPath) $(SolutionDir)\obj\$(Configuration)\$(MSBuildProjectName)\ False true -
将此文件包含在要为其设置公共输出目录的每个* .csproj中,通过添加此行(实际路径可能不同):
对于每个项目:
- 在“构建”选项卡中进入项目属性。
- 选择“所有配置”,“所有平台”,只是在案例中。
- 在输出文件夹中写入“.. \ bin \”(或任何统一的所有路径 – 不在当前项目目录中)。 或者,要在子文件夹中组织DLL,您可以在输出路径中写入“.. \ bin \ Sub-project-directory”。 然后,您应该为EXE项目添加一个App.config文件,并探测所有DLL,以便在运行时找到并加载它们。