有一个带有本地化资源文件的Windows (NET3.5)项目foo.csproj。我使用MSBuild构建项目并创建一个部署结构:
<MSBuild Projects="foo.csproj" Properties="Configuration=Release;OutputPath=..\deploy\foo" Targets="Build" />
它将foo.exe和所有本地化DLL文件复制到deploy\foo
文件夹中,但我需要将本地化DLL文件复制到单独的文件夹中。它应该是:
是否有方法将MSBuild配置为将EXE和DLL文件复制到不同的文件夹?
发布于 2013-10-29 09:56:14
资源文件生成和复制是在构建过程中在内部MSBuild过程中完成的:GenerateSatelliteAssemblies
和CopyFilesToOutputDirectory
。它们被复制到输出目录中。
据我所知,你不能改变这种行为。
您必须在构建步骤之后移动资源文件。我建议使用来自MSBuild社区任务的MSBuild社区任务任务。
<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)')"/>
发布于 2014-10-21 00:20:45
使用MSBuild命令行,可以指定如下所示的输出路径:
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
注意:
OutDir
指定/p属性的顺序,这是行不通的。OutDir
属性用于指定备用目录的完整路径。OutputPath
用于相对目录。OutDir
中。https://stackoverflow.com/questions/19633531
复制相似问题