首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >配置MSBuild输出路径

配置MSBuild输出路径
EN

Stack Overflow用户
提问于 2013-10-28 11:25:52
回答 2查看 61K关注 0票数 27

有一个带有本地化资源文件的Windows (NET3.5)项目foo.csproj。我使用MSBuild构建项目并创建一个部署结构:

代码语言:javascript
运行
复制
<MSBuild Projects="foo.csproj" Properties="Configuration=Release;OutputPath=..\deploy\foo" Targets="Build" />

它将foo.exe和所有本地化DLL文件复制到deploy\foo文件夹中,但我需要将本地化DLL文件复制到单独的文件夹中。它应该是:

  • deploy\foo\foo.exe
  • 部署\locales\RU-RU\foo.resources es.dll
  • 部署\locales\pt-BR\foo.resources es.dll

是否有方法将MSBuild配置为将EXE和DLL文件复制到不同的文件夹?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-29 09:56:14

资源文件生成和复制是在构建过程中在内部MSBuild过程中完成的:GenerateSatelliteAssembliesCopyFilesToOutputDirectory。它们被复制到输出目录中。

据我所知,你不能改变这种行为。

您必须在构建步骤之后移动资源文件。我建议使用来自MSBuild社区任务MSBuild社区任务任务。

代码语言:javascript
运行
复制
<MSBuild Projects="foo.csproj" Properties="Configuration=Release;OutputPath=..\deploy\foo" Targets="Build" />

<CreateItem Include="..\deploy\foo\**\*.resources.dll">
    <Output TaskParameter="Include" ItemName="ResourcesToMove" />
</CreateItem>

<Move SourceFiles="@(ResourcesToMove)" DestinationFiles="@(ResourcesToMove->'..\deploy\locales\%(RecursiveDir)\%(Filename)%(Extension)')"/>
票数 9
EN

Stack Overflow用户

发布于 2014-10-21 00:20:45

使用MSBuild命令行,可以指定如下所示的输出路径:

代码语言:javascript
运行
复制
C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe <path_to_project_file> /t:Build /p:OutDir=c:\custom_build_out\;Configuration=PRODUCTION;Platform=x64

注意:

  1. 如果您更改了为OutDir指定/p属性的顺序,这是行不通的。
  2. OutDir属性用于指定备用目录的完整路径。OutputPath用于相对目录。
  3. 它必须在自定义生成输出路径中有一个项目名称+构建配置名,因为MSBuild没有将这些东西附加到OutDir中。
票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19633531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档