【发布时间】:2017-12-21 06:49:30
【问题描述】:
我希望有人对使用 Teamcity 构建和发布包含 .NET Core/标准 2.0 项目和 .NET Framework 4.6.x 项目的解决方案的最佳方式提出一些建议。
目前,我可以构建项目、运行测试,但我无法找到通过 dotnet-cli 发布它的方法。我们有一个相对较大的解决方案,大约 75 个 .NET 核心/标准项目和 5 个或一些框架项目。在我们的解决方案上运行 dotnet publish 会导致 .NET 框架项目出现以下错误:
错误:C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(3861,5):错误 MSB4062:无法加载“Microsoft.Build.Tasks.ResolveManifestFiles”任务从程序集 Microsoft.Build.Tasks.Core,版本=15.1.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。
如果 cli 可以尝试忽略发布 .NET Framework 项目,那将是理想的,但这似乎是不可能的。我正在考虑编写一个 powershell 脚本来检查我们解决方案中的所有 csproj 文件是否有适当的 TargetFramework 值(即 netstandard2.0/netcoreapp2.0),然后单独发布它们,但也许有人知道更好的方法?
【问题讨论】:
-
您的所有项目都使用新的 csproj 文件结构吗?
dotnetCLI 仅适用于此。 -
谢谢,这解决了问题。有没有办法在 Visual Studio 中使用新的 csproj 格式创建新的框架项目?我按照以下说明替换 csproj 内容:hanskindberg.wordpress.com/2017/04/18/…
标签: .net-core teamcity octopus-deploy dotnet-cli