我们有一个aspnet-core
应用程序,它包含多个.net standard
库,两个aspnet-core mvc
应用程序,以及一个.net framework
控制台应用程序。
这些都可以在Visual Studio的解决方案中成功构建,也可以使用msbuild
/ dotnet build
命令单独构建。
我们现在正尝试使用VSTS实现持续集成/构建。
我们发现aspnet-core
Web应用程序已成功构建,但.net framework
控制台应用程序失败,出现多条错误消息,如下所示:
2017-12-24T07:20:26.4090447Z C:\Program
Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(1988,5):
warning MSB3245: Could not resolve this reference. Could not locate the
assembly "Xxx.Core, Version=1.1.0.0, Culture=neutral,
processorArchitecture=MSIL". Check to make sure the assembly exists on disk.
If this reference is required by your code, you may get compilation errors.
[d:\a\1\s\WinApps\ListBuilder\ListBuilder.csproj]
C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(1988,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.EntityFrameworkCore, Version=2.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [d:\a\1\s\WinApps\TelemListBuilder\TelemListBuilder.csproj]
控制台应用程序遵循与Web应用程序相同的文件夹结构,但似乎无法找到任何引用的包。
我们的代理队列是Hosted VS2017
。
我们有两个VSTS任务:来自Restore
构建模板的Build
和asp.net core
。
如果我们可以从构建中排除控制台应用程序,我们会很高兴。
答案 0 :(得分:3)
由于存在一般的.net框架项目和.net核心项目,并且您希望将它们组合在一起,因此需要使用 Visual Studio构建任务。
因此,删除 .Net Core Restore 和 .Net Core构建任务并添加N uGet Tool Installer(4.3.0),< strong> Nuget restore 和 Visual Studio Build 任务(Visual Studio版本:最新版或Visual Studio 2017)
如果要在构建期间生成部署包,可以指定MSBuild参数,如下所示:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)"