.Net-Core Proj - MSBuild 无法复制到输出文件夹
Posted
技术标签:
【中文标题】.Net-Core Proj - MSBuild 无法复制到输出文件夹【英文标题】:.Net-Core Proj - MSBuild failing to copy to output folder 【发布时间】:2020-01-12 05:32:25 【问题描述】:尝试从 TFS 构建到 .NET-Core 项目,构建失败,因为以下命令不起作用,无法将构建的文件复制到输出文件夹。该命令适用于 .Net Framework 项目,而不仅仅适用于 .Net Core 项目。请检查。
基本命令可以正常工作:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin>MSBuild.exe "C:\TFSFolder\Builds\GUID\DotnetCoreProject.sln" /p:OutDir="C:\TFSFolder\Builds\39\b\DotnetCoreProject\\"
非工作命令:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin>MSBuild.exe "C:\TFSFolder\Builds\GUID\DotnetCoreProject.sln" /nologo /nr:false /t:"Clean" /dl:CentralLogger,"C:\TFSFolder\Builds\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.126.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=2c81e6a8-374d-4a65-91ba-418b04505e77|SolutionDir=C:\TFSFolder\Builds\GUID\"*ForwardingLogger,"C:\TFSFolder\Builds\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.126.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:OutDir="C:\TFSFolder\Builds\39\b\DotnetCoreProject\\" /t:Restore /p:platform="any cpu" /p:configuration="release" /p:VisualStudioVersion="15.0" /p:_MSDeployUserAgent="TFS_fa1cf861-541e-47b2-b0f3-8c684de5500a_build_22138_1486294"
只需将构建的文件复制到提到的输出文件夹路径即可。我只能猜测提到的dll不支持,请检查并帮助。
【问题讨论】:
【参考方案1】:您似乎只是在恢复和清理项目,因为您指定了 /t:Clean
和 /t:Restore
。
请改用-restore -t:Rebuild
。
另请注意,您通常不希望将 .NET Core 项目的输出目录内容用于部署,而是希望其发布输出。为此,请改用项目上的 Publish 目标:
-restore -t:Publish theproject.csproj -p:PublishDir=artifact\location
【讨论】:
不得不使用 '/t:Restore' 来修复错误,这是关于包资产文件的。还有关于出版,它的安静是不可理解的,没有构建它如何工作?请注意,这是在 tfs 上配置的。请更清楚如何在 tfs 上配置它以进行发布? 发布目标内部依赖于构建目标。 TFS / AzureDevops 还具有您可以使用的 .NET Core 构建任务。 Visual Studio 构建任务也可以配置不同的参数。以上是关于.Net-Core Proj - MSBuild 无法复制到输出文件夹的主要内容,如果未能解决你的问题,请参考以下文章
获取 ASP.NET-Core 2.2 控制器中的控制器名称和方法名称
从类库访问 Asp.net-core 中的 appsetting.json