项目构建但无法发布

时间:2018-01-04 20:23:18

标签: c# asp.net asp.net-mvc visual-studio visual-studio-2015

我有一个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 ==========

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

12 个答案:

答案 0 :(得分:64)

所以我做到了。

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

我不知道为什么如果有人知道知道它会很酷。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

(在相当长的一段时间内,如果我只是重新启动VS,则发布错误将消失,但最终该错误停止了。)

答案 4 :(得分:1)

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

答案 5 :(得分:0)

This just happened to me, it turned out to be a simple case of using an int in a ViewComponent call from a razor template, when that argument should have been a Guid. For some reason Intellisense didn't pick it up, I had to turn on detailed verbosity to see the error in the build process.

答案 6 :(得分:0)

我在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步开始尝试,那将成功。

答案 7 :(得分:0)

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

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

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

答案 8 :(得分:0)

我已经在 Properties> Build> Advanced 中切换到C# 7.3,但是偶然地,只有在 Debug 配置中才这样做。发布(使用发布配置)时,它仍在使用C# 7.0,但缺少我曾经使用的某些语言功能。

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

“所有配置” 的语言版本设置为C# 7.3对我来说已经解决了。

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

答案 9 :(得分:0)

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

我尝试了很多事情,没有成功。我做到了,出版成功了。可以肯定的是,我将项目从BitBucket恢复到原始状态,进行了测试以查看发布是否失败,再次删除了nuget包,然后它就可以正常工作了。

答案 10 :(得分:0)

我有类似的问题。该项目正在顺利进行,但是当我发布该项目时,Azure向我发送了错误消息。

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

Description of .NET Compilers

My target framework

我通过将.NET编译器降级到与.NET Framework兼容的版本进行了修复(就我而言,要使用4.6.2框架,我需要使用.NET Compiller 2.10)。

答案 11 :(得分:0)

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

  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;构建/ p:PublishDir =“ $(build.artifactstagingdirectory)\” / p:SkipInvalidConfigurations = true / p:DeployOnBuild = true / p:WebPublishMethod = Package / p:PackageAsSingleFile = true / p: PackageLocation =“ $(build.artifactstagingdirectory)\”

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

使用以下选项选择测试:测试程序集

测试文件:
*测试 .dll
!** \ obj *

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

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

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

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

构建平台:$(BuildPlatform)

构建配置:$(BuildConfiguration)

=== YAML

步骤:

  • 任务:VSBuild @ 1 displayName:'构建解决方案***。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)' 干净:真实 maximumCpuCount:是 restoreNugetPackages:正确 createLogFile:true

步骤:

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

步骤:

  • 任务:VSTest @ 2 displayName:'VsTest-testAssemblies' 输入: testAssemblyVer2:| *测试 .dll !** \ obj * vsTestVersion:toolsInstaller otherConsoleOptions:'/ Framework:Framework45 /Diag:log.txt / Logger:console' 平台:“ $(BuildPlatform)” 配置:'$(BuildConfiguration)' diagnosticsEnabled:是

步骤:

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