我希望有人能就如何使用Teamcity来构建和发布同时包含.NET Core/standard 2.0项目和.NET Framework 4.6.x项目的解决方案提供一些建议。
目前,我可以构建项目,运行测试,但是我无法通过dotnet-cli找到发布的方法。我们有一个相对较大的解决方案,其中约有75个.NET core/standard项目和5个或更多框架项目。在我们的解决方案上运行dotnet publish会导致.NET framework项目出现以下错误:
error: C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(3861,5): error MSB4062: 无法从程序集Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a中加载“Microsoft.Build.Tasks.ResolveManifestFiles”任务。请确认声明正确、程序集及其所有依赖项都可用,并且该任务包含实现Microsoft.Build.Framework.ITask的公共类。
如果cli能够忽略发布.NET Framework项目,那将是理想的,但似乎不可能。我正在考虑编写一个PowerShell脚本,检查我们解决方案中所有csproj文件的TargetFramework值是否适当(即netstandard2.0/netcoreapp2.0),并单独发布它们,但也许有人知道更好的方法?
目前,我可以构建项目,运行测试,但是我无法通过dotnet-cli找到发布的方法。我们有一个相对较大的解决方案,其中约有75个.NET core/standard项目和5个或更多框架项目。在我们的解决方案上运行dotnet publish会导致.NET framework项目出现以下错误:
error: C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(3861,5): error MSB4062: 无法从程序集Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a中加载“Microsoft.Build.Tasks.ResolveManifestFiles”任务。请确认声明正确、程序集及其所有依赖项都可用,并且该任务包含实现Microsoft.Build.Framework.ITask的公共类。
如果cli能够忽略发布.NET Framework项目,那将是理想的,但似乎不可能。我正在考虑编写一个PowerShell脚本,检查我们解决方案中所有csproj文件的TargetFramework值是否适当(即netstandard2.0/netcoreapp2.0),并单独发布它们,但也许有人知道更好的方法?
dotnet
CLI才能与之配合使用。 - nvoigt