繁体   English   中英

项目构建但无法发布

[英]Project builds but can't publish

我有一个 MVC 项目,由于未知原因,它拒绝发布到 PC 中的本地文件夹。

日志说如下:

3>------ Publish started: Project: Admin, Configuration: Release Any CPU ------
3>Connecting to D:\Deploys...
3>Project "Admin.csproj" (GatherAllFilesToPublish target(s)):
3>    Building with tools version "14.0".
3>    Target "ValidateMSBuildToolsVersion" skipped. Previously built unsuccessfully.
3>Done building project "Admin.csproj" -- FAILED.
3>
========== Build: 2 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

我在发布或调试配置上都没有遇到调试问题。

所以我让它工作。

问题是“Microsoft.Net.Compilers”的版本。 我从 v2.6.1 降级到 v2.4.0。

我不知道为什么,所以如果有人知道会很酷。

很抱歉重新打开线程,但对我来说,清理解决方案适用于 .NET.Compilers v2.7 (Visual Studio 2015)。

将“Microsoft.Net.Compilers”从 v2.9.0 降级到 v2.4.0 就像一个魅力

我能够通过删除 NuGet 包“Microsoft.Net.Compilers”来完全解决我的问题,而不是降级到 2.4.0。

(在相当长的一段时间内,如果我简单地重新启动 VS,发布错误就会消失,但最终它停止工作。)

首先,选择模式(调试或发布)。 然后右键单击解决方案/项目,然后选择清理。 然后选择重建。 然后发布。

这只是发生在我身上,结果是在一个来自剃刀模板的 ViewComponent 调用中使用 int 的简单情况,当时该参数应该是一个 Guid。 出于某种原因,Intellisense 没有发现它,我不得不打开详细的详细信息才能看到构建过程中的错误。

我在 Asp.net Core 2 MVC 2.1 中遇到了这个问题,所以我的解决方案中没有 Microsoft.Net.Compilers。 我尝试重建所有项目,再次卸载/加载,但没有任何变化。

1) 所以,我已经将 VS 2017 15.7.3 升级到 15.8.7
2) 然后从解决方案中的每个项目中删除所有 bin/release 目录内容。
3)然后从解决方案中的每个项目中删除所有obj目录内容。
4)然后将所有项目一一重建。
然后尝试发布并成功。

也许如果我在旧的 Visual Studio 中从第 2 步开始尝试,它会成功。

尝试使用 Visual Studio 2017 打开解决方案

我一直在从 Visual Studio 2015 构建和发布,因为这是我打开解决方案文件时版本选择器选择的 Visual Studio 版本。

我尝试从 Visual Studio 2017 打开我的解决方案文件,并成功发布。

我已经在Properties > Build > Advanced 中切换到C# 7.3 ,但不小心只在Debug配置中这样做了。 发布时(使用Release配置)它仍然使用C# 7.0 ,它缺少我使用过的一些语言功能。

错误在“错误列表”窗格中不可见,仅在“输出”窗格中可见。

“所有配置”的语言版本设置为C# 7.3为我解决了这个问题。

这是使用当前版本的 Visual Studio 2017, Microsoft.Net.Compilers包含在项目中。

尝试删除Microsoft.Net.Compilers Nuget 包。

我尝试了很多东西,都没有成功。 我这样做了,出版成功了。 可以肯定的是,我将我的项目从 BitBucket 恢复到其原始状态,进行了测试以查看发布失败,再次删除了 nuget 包,并且成功了。

我有一个类似的问题。 该项目构建正常,但是当我发布它时,Azure 向我发送了错误。

我的项目目标 .NET 框架是 4.6.2 版本,我正在升级 Nugget 包,不幸的是我将我的 .NET 编译器升级到最新版本,但它与我的目标 .NET 版本不兼容。你应该可以在这里看到它:

.NET 编译器的描述

我的目标框架

我通过将 .NET Compilers 降级到与我的 .NET Framework 兼容的版本来修复它(在我的情况下,要使用 4.6.2 框架,我需要使用 .NET Compiller 2.10)。

我在使用项目时遇到了类似的问题:

  1. .NET 4.7.2
  2. MVC5解决方案
  3. 所有具有文件名格式的单元测试文件:Tests.cs,如“HomeControllerTest.cs”
  4. Microsoft Visual Studio Enterprise 2019,版本 16.6.4

对于该项目,以下 Azure DevOps Pipeline 设置有效:

MSBuild 参数:

/t:Publish;Build /p:PublishDir="$(build.artifactstagingdirectory)\\" /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:PackageLocation=" $(build.artifactstagingdirectory)\\"

Visual Studio 测试平台安装程序:最新稳定版

选择测试使用:测试程序集

测试文件:
*测试.dll
!**\\对象*

搜索文件夹:$(System.DefaultWorkingDirectory)

测试结果文件夹:$(Agent.TempDirectory)\\TestResults

测试平台版本:由工具安装程序安装

其他控制台选项:/Framework:Framework45 /Diag:log.txt /Logger:console

构建平台:$(BuildPlatform)

构建配置:$(BuildConfiguration)

=== YAML

步骤:

  • 任务:VSBuild@1 displayName:'Build solution ***.sln' 输入:解决方案:'$(Parameters.solution)' msbuildArgs:'/t:Publish;Build /p:PublishDir="$(build.artifactstagingdirectory)\\ " /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:PackageLocation="$(build.artifactstagingdirectory)\\" '平台:'$(BuildPlatform)' 配置: '$(BuildConfiguration)' clean: true maximumCpuCount: true restoreNugetPackages: true createLogFile: true

步骤:

  • 任务:VisualStudioTestPlatformInstaller@1 displayName:“Visual Studio 测试平台安装程序”输入:versionSelector:latestStable

步骤:

  • 任务:VSTest@2 显示名称:'VsTest - testAssemblies' 输入:testAssemblyVer2:| *Tests .dll !**\\obj* vsTestVersion: toolsInstaller otherConsoleOptions: '/Framework:Framework45 /Diag:log.txt /Logger:console' 平台: '$(BuildPlatform)' 配置: '$(BuildConfiguration)' diagnosticsEnabled: true

步骤:

  • 任务:PublishTestResults@2 displayName:'发布测试结果**/TEST-*.xml'输入:testResultsFormat:VSTest

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM