gpt4 book ai didi

visual-studio - msbuild SLN 并仍然获得单独的项目输出?

转载 作者:行者123 更新时间:2023-12-04 02:01:00 25 4
gpt4 key购买 nike

我有一个普通的 SLN 文件,我正在从命令行用 msbuild 编译它。我这样做:

C:\slndir> msbuild/p:OutDir=C:\slnbin\

它将所有内容都转储到 C:\slnbin 中,但网站除外,这些网站被部署到 C:\slnbin_PublishedWebsites\。

我想要的是不仅将所有二进制文件都放入 bin 目录中,而且让每个可执行程序都有自己的“部署”文件夹,类似于每个网站获得的文件夹。

因此,例如,如果我有以下项目:
- 常见的
- Lib1
- 服务 1
- Lib2
- 服务 2

我想得到:

  C:\slnbin\ // Everything
C:\slbin\Deploy\Service1 // Common, Lib1, Service1
C:\slbin\Deploy\Service2 // Common, Lib2, Service2

我尝试做诸如“msbuild/p:OutDir=C:\slnbin\$(ProjectName)”之类的事情,但它只是将其视为文字并创建了一个实际的“$(ProjectName)”子目录。

最好是,我不必修改每个单独的项目等等。

这可能吗?简单?

最佳答案

就像 John Saunders 所说的那样,您需要有一个处理该过程的主 MSBuild 文件。

这是使用 MSBuild Community Tasks 的示例:获取解决方案项目 获取给定解决方案的项目

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Package">

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

<!-- Specify here, the solution you want to compile-->
<ItemGroup>
<Solution Include="C:\slndir\solution.sln"/>
</ItemGroup>

<PropertyGroup>
<Platform>AnyCPU</Platform>
<Configuration>Debug</Configuration>

<!-- Your deployment directory -->
<DeployDir>C:\slbin\Deploy</DeployDir>
</PropertyGroup>

<!-- Gets the projects composing the specified solution -->
<Target Name="GetProjectsFromSolution">
<GetSolutionProjects Solution="%(Solution.Fullpath)">
<Output ItemName="ProjectFiles" TaskParameter="Output"/>
</GetSolutionProjects>
</Target>

<Target Name="CompileProject" DependsOnTargets="GetProjectsFromSolution">
<!--
Foreach project files
Call MSBuild Build Target specifying the outputDir with the project filename.
-->
<MSBuild Projects="%(ProjectFiles.Fullpath)"
Properties="Platform=$(Platform);
Configuration=$(Configuration);
OutDir=$(DeployDir)\%(ProjectFiles.Filename)\"
Targets="Build">
</MSBuild>
</Target>
</Project>

关于visual-studio - msbuild SLN 并仍然获得单独的项目输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/628739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com