发布错误:使用dotnet publish的MSB4019

时间:2018-06-20 08:07:26

标签: c# visual-studio visual-studio-2017 .net-core asp.net-core-2.0

我正在使用VS2017(版本15.7.3)和Microsoft.NET Framework版本4.7.02046 该项目可以在IDE内编译并正常运行。

尝试在命令行上发布项目时出现以下错误:

>dotnet publish -c Release -r ubuntu.16.04-x64

Microsoft (R)-Buildmodul, Version 15.7.179.6572 für .NET Core
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

C:\..\.nuget\packages\microsoft.web.webjobs.publish\2.0.0\build\webjobs.console.targets(24,3): error MSB4019: Das importierte Projekt "C:\Program Files\dotnet\sdk\2.1.300\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" wurde nicht gefunden. Vergewissern Sie sich, dass der Pfad in der <Import>-Deklaration korrekt und die Datei auf dem Datenträger vorhanden ist. [C:\projectPath\MyProject\my_project.csproj]

我注意到我的机器上不存在路径“ C:\ Program Files \ dotnet \ sdk \ 2.1.300 \ Microsoft \ VisualStudio \ v15.0 \ WebApplications”,为什么它在那里?

它要求用英语检查声明

Make sure that the path in the <Import> declaration is correct and that the file exists on the disk.

我的项目文件中的任何地方都没有声明。这是什么意思?

项目文件:

<Project Sdk="Microsoft.NET.Sdk;Microsoft.NET.Sdk.Publish">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <PreserveCompilationContext>true</PreserveCompilationContext>
    <RuntimeIdentifiers>win7-x64;win7-x86;ubuntu.16.04-x64;</RuntimeIdentifiers>
    <SuppressDockerTargets>True</SuppressDockerTargets>
    <DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
  </PropertyGroup>
  <ItemGroup>
    <Compile Remove="Mqtt\**" />
    <EmbeddedResource Remove="Mqtt\**" />
    <None Remove="Mqtt\**" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="4.0.1" />
    <PackageReference Include="M2MqttDotnetCore" Version="1.0.7" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.1.1" />
    <PackageReference Include="Microsoft.Web.WebJobs.Publish" Version="2.0.0" />
    <PackageReference Include="Serilog" Version="2.7.1" />
    <PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
    <PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.2" />
    <PackageReference Include="Serilog.Enrichers.Thread" Version="3.0.0" />
    <PackageReference Include="Serilog.Extensions.Logging" Version="2.0.2" />
    <PackageReference Include="Serilog.Extensions.Logging.File" Version="1.1.0" />
    <PackageReference Include="Serilog.Settings.Configuration" Version="2.6.1" />
    <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
    <PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
    <PackageReference Include="Serilog.Sinks.Literate" Version="3.0.0" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\MyProjectArchive\MyProjectArchive.csproj" />
    <ProjectReference Include="..\MyProjectSubscriptionService\MyProjectSubscriptionService.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="Microsoft.Extensions.Configuration">
      <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration\2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.Extensions.Configuration.Abstractions">
      <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.abstractions\2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.Extensions.Logging">
      <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.logging\2.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.Extensions.Logging.Abstractions">
      <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.logging.abstractions\2.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <None Update="appsettings.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="run.cmd">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="Settings.job">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>
</Project>

详细输出(使用-v d)

PROJECT_PATH>dotnet publish -v d -c Release -r ubuntu.16.04-x64
Microsoft (R)-Buildmodul, Version 15.7.179.6572 für .NET Core
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Der Buildvorgang wurde am 20.06.2018 10:17:21 gestartet.
     0>SDK "Microsoft.NET.Sdk" wird aufgelöst...
       NdE: $(MSBuildProjectExtensionsPath)="PROJECT_PATH\obj\" (vorheriger Wert: "obj\") unter DOTNET_SDK_PATH\2.1.300\15.0\Microsoft.Common.props (60,5)
       NdE: $(MSB)=";PROPS1" (vorheriger Wert: ";PROPS") unter NUGET.G.PROPS (13,5)
       NdE: $(MSB)=";PROPS2" (vorheriger Wert: ";PROPS1") unter NET.SDK.PROPS (15,5)
       NdE: $(MSB)=";PROPS3" (vorheriger Wert: ";PROPS2") unter NET.SDK.DEFAULT.PROPS (21,5)
       NdE: $(MSB)=";PROPS4" (vorheriger Wert: ";PROPS3") unter NET.SupTarFrameW.PROPS (17,9)
       NdE: $(MSB)=";PROPS5" (vorheriger Wert: ";PROPS4") unter NET.SDK.C#.PROPS (15,5)
       SDK "Microsoft.NET.Sdk.Publish" wird aufgelöst...
       NdE: $(OutputType)="Exe" (vorheriger Wert: "Library") unter PROJECT_PATH\my_project.csproj (3,5)
       NdE: $(MSB)=";PROPS5_TP" (vorheriger Wert: ";PROPS5") unter SDK_TARGETS_PATH (15,5)
       NdE: $(MSB)=";PROPS5_TP1" (vorheriger Wert: ";PROPS5_TP") unter TARGETS_PATH\Microsoft.NET.Sdk.BeforeCommon.targets (15,5)
       NdE: $(MSB)=";PROPS5_TP2" (vorheriger Wert: ";PROPS5_TP1") unter ms.net.defaultAssemblyInfo.targets (15,5)
       NdE: $(MSB)=";PROPS5_TP3" (vorheriger Wert: ";PROPS5_TP2") unter TARGETS_PATH\Microsoft.NET.DefaultOutputPaths.targets (27,5)
       NdE: $(MSB)=";PROPS5_TP4" (vorheriger Wert: ";PROPS5_TP3") unter TARGETS_PATH\Microsoft.NET.TargetFrameworkInference.targets (46,5)
       NdE: $(DefaultItemExcludes)=";bin\Release\/**;obj\Release\/**" (vorheriger Wert: ";bin\Release\/**") unter TARGETS_PATH\Microsoft.NET.TargetFrameworkInference.targets (166,5)
       NdE: $(IntermediateOutputPath)="obj\Release\netcoreapp2.1\" (vorheriger Wert: "obj\Release\") unter TARGETS_PATH\Microsoft.NET.TargetFrameworkInference.targets (178,5)
       NdE: $(OutputPath)="bin\Release\netcoreapp2.1\" (vorheriger Wert: "bin\Release\") unter TARGETS_PATH\Microsoft.NET.TargetFrameworkInference.targets (179,5)
       NdE: $(MSB)=";PROPS5_TP5" (vorheriger Wert: ";PROPS5_TP4") unter TARGETS_PATH\Microsoft.NET.RuntimeIdentifierInference.targets (15,5)
       NdE: $(IntermediateOutputPath)="obj\Release\netcoreapp2.1\ubuntu.16.04-x64\" (vorheriger Wert: "obj\Release\netcoreapp2.1\") unter TARGETS_PATH\Microsoft.NET.RuntimeIdentifierInference.targets (150,5)
       NdE: $(OutputPath)="bin\Release\netcoreapp2.1\ubuntu.16.04-x64\" (vorheriger Wert: "bin\Release\netcoreapp2.1\") unter TARGETS_PATH\Microsoft.NET.RuntimeIdentifierInference.targets (151,5)
       NdE: $(MSB)=";PROPS5_TP6" (vorheriger Wert: ";PROPS5_TP5") unter TARGETS_PATH\Microsoft.NET.NuGetOfflineCache.targets (15,5)
       NdE: $(_FrameworkVersionForImplicitDefine)="2_1" (vorheriger Wert: "2.1") unter TARGETS_PATH\Microsoft.NET.Sdk.BeforeCommon.targets (157,5)
       NdE: $(MSB)=";PROPS5_TP7" (vorheriger Wert: ";PROPS5_TP6") unter DOTNET_SDK_PATH\2.1.300\Microsoft.CSharp.CurrentVersion.targets (38,9)
       NdE: $(_DebugSymbolsProduced)="true" (vorheriger Wert: "false") unter DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets (152,5)
       NdE: $(_DocumentationFileProduced)="false" (vorheriger Wert: "true") unter DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets (157,5)
       NdE: $(ProcessorArchitecture)="amd64" (vorheriger Wert: "x64") unter DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets (473,5)
       NdE: $(DelaySign)="" (vorheriger Wert: "false") unter DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets (525,5)
       NdE: $(MSB)=";PROPS5_TP8" (vorheriger Wert: ";PROPS5_TP7") unter DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets (536,5)
       NdE: $(MSB)=";PROPS5_TP9" (vorheriger Wert: ";PROPS5_TP8") unter DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets (537,5)
       NdE: $(_SGenGenerateSerializationAssembliesConfig)="Auto" (vorheriger Wert: "") unter DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets (3496,5)
       NdE: $(MSB)=";PROPS5_TP10" (vorheriger Wert: ";PROPS5_TP9") unter DOTNET_SDK_PATH\2.1.300\NuGet.targets (45,5)
       NdE: $(MSB)=";PROPS5_TP11" (vorheriger Wert: ";PROPS5_TP10") unter DOTNET_SDK_PATH\2.1.300\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.NET.Build.Extensions.targets (14,5)
       NdE: $(MSB)=";PROPS5_TP12" (vorheriger Wert: ";PROPS5_TP11") unter DOTNET_SDK_PATH\2.1.300\Microsoft\Microsoft.NET.Build.Extensions\Microsoft.NET.Build.Extensions.targets (15,5)
       NdE: $(MSB)=";PROPS5_TP13" (vorheriger Wert: ";PROPS5_TP12") unter DOTNET_SDK_PATH\2.1.300\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.TestPlatform.ImportAfter.targets (16,5)
       NdE: $(MSB)=";PROPS5_TP14" (vorheriger Wert: ";PROPS5_TP13") unter DOTNET_SDK_PATH\2.1.300\Microsoft.TestPlatform.targets (17,5)
       NdE: $(MSB)=";PROPS5_TP15" (vorheriger Wert: ";PROPS5_TP14") unter PROJECT_PATH\obj\my_project.csproj.nuget.g.targets (4,5)
       NdE: $(FilePreview)="false" (vorheriger Wert: "") unter C:\Users\user\.nuget\packages\microsoft.web.webjobs.publish\2.0.0\build\Microsoft.Web.WebJobs.Publish.targets (36,5)
     1>Projekt "PROJECT_PATH\my_project.csproj" auf Knoten "1", Restore Ziel(e).
     1>Erstellung mit der Toolsversion "15.0".
     1>C:\Users\user\.nuget\packages\microsoft.web.webjobs.publish\2.0.0\build\webjobs.console.targets(24,3): error MSB4019: Das importierte Projekt "DOTNET_SDK_PATH\2.1.300\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" wurde nicht gefunden. Vergewissern Sie sich, dass der Pfad in der <Import>-Deklaration korrekt und die Datei auf dem Datenträger vorhanden ist. [PROJECT_PATH\my_project.csproj]
     1>Die Erstellung des Projekts "PROJECT_PATH\my_project.csproj" ist abgeschlossen, Restore Ziel(e) -- FEHLER.

Fehler beim Buildvorgang.

       "PROJECT_PATH\my_project.csproj" (Restore Ziel) (1) ->
         C:\Users\user\.nuget\packages\microsoft.web.webjobs.publish\2.0.0\build\webjobs.console.targets(24,3): error MSB4019: Das importierte Projekt "DOTNET_SDK_PATH\2.1.300\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" wurde nicht gefunden. Vergewissern Sie sich, dass der Pfad in der <Import>-Deklaration korrekt und die Datei auf dem Datenträger vorhanden ist. [PROJECT_PATH\my_project.csproj]

    0 Warnung(en)
    1 Fehler

Verstrichene Zeit 00:00:00.52

要添加详细的输出,我必须通过使用占位符替换重复的值来将其缩短:

NdE: Neuzuweisung der Eigenschaft
MSB: MsBuildAllProjects
DOTNET_SDK_PATH: C:\Program Files\dotnet\sdk
TARGETS_PATH: DOTNET_SDK_PATH\2.1.300\Sdks\Microsoft.NET.Sdk\targets
SDK_TARGETS_PATH: DOTNET_SDK_PATH\2.1.300\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets
PROPS: DOTNET_SDK_PATH\2.1.300\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props
PROPS1: PROPS;NUGET.G.PROPS
PROPS2: PROPS1;NET.SDK.PROPS
PROPS3: PROPS2;NET.SDK.DEFAULT.PROPS
PROPS4: PROPS3;NET.SupTarFrameW.PROPS
PROPS5: PROPS4;NET.SDK.C#.PROPS
PROPS5_TP: PROPS5;SDK_TARGETS_PATH
PROPS5_TP1: PROPS5_TP;TARGETS_PATH\Microsoft.NET.Sdk.BeforeCommon.targets
PROPS5_TP2: PROPS5_TP1;ms.net.defaultAssemblyInfo.targets
PROPS5_TP3: PROPS5_TP2;TARGETS_PATH\Microsoft.NET.DefaultOutputPaths.targets
PROPS5_TP4: PROPS5_TP3;TARGETS_PATH\Microsoft.NET.TargetFrameworkInference.targets
PROPS5_TP5: PROPS5_TP4;TARGETS_PATH\Microsoft.NET.RuntimeIdentifierInference.targets
PROPS5_TP6: PROPS5_TP5;TARGETS_PATH\Microsoft.NET.NuGetOfflineCache.targets
PROPS5_TP7: PROPS5_TP6;DOTNET_SDK_PATH\2.1.300\Microsoft.CSharp.CurrentVersion.targets
PROPS5_TP8: PROPS5_TP7;PROJECT_PATH\my_project.csproj;DOTNET_SDK_PATH\2.1.300\Microsoft.Common.CurrentVersion.targets
PROPS5_TP9: PROPS5_TP8;PROJECT_PATH\my_project.csproj.user
PROPS5_TP10: PROPS5_TP9;DOTNET_SDK_PATH\2.1.300\NuGet.targets
PROPS5_TP11: PROPS5_TP10;DOTNET_SDK_PATH\2.1.300\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.NET.Build.Extensions.targets
PROPS5_TP12: PROPS5_TP11;DOTNET_SDK_PATH\2.1.300\Microsoft\Microsoft.NET.Build.Extensions\Microsoft.NET.Build.Extensions.targets
PROPS5_TP13: PROPS5_TP12;DOTNET_SDK_PATH\2.1.300\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.TestPlatform.ImportAfter.targets
PROPS5_TP14: PROPS5_TP13;DOTNET_SDK_PATH\2.1.300\Microsoft.TestPlatform.targets
PROPS5_TP15: PROPS5_TP14;PROJECT_PATH\obj\my_project.csproj.nuget.g.targets

NUGET.G.PROPS: PROJECT_PATH\obj\my_project.csproj.nuget.g.props
NET.SDK.PROPS: TARGETS_PATH\Microsoft.NET.Sdk.props
NET.SDK.DEFAULT.PROPS: TARGETS_PATH\Microsoft.NET.Sdk.DefaultItems.props
NET.SupTarFrameW.PROPS: TARGETS_PATH\Microsoft.NET.SupportedTargetFrameworks.props
NET.SDK.C#.PROPS: NET.SDK.C#.PROPS
ms.net.defaultAssemblyInfo.targets : TARGETS_PATH\Microsoft.NET.DefaultAssemblyInfo.targets

1 个答案:

答案 0 :(得分:0)

尝试各种在搜索问题时发现的事情,最终设法解决了这个问题。但是,我不确定要解决什么问题,因为在从Visual Studio中更新Windows Powershell之前,我做了一些无法独立完成的事情。

  1. 我运行WebJobs.Publish安装程序:Install-Package Microsoft.Web.WebJobs.Publish -Version 2.0.0
  2. 我将C:Programme(x86)\ MSBuild \ Microsoft \ VisualStudio下的v14.0文件夹的内容复制到了v15.0文件夹中
  3. 我在项目文件中添加了导入节,但是没有用,请再次将其删除
  4. 安装了MSBuildTools,原本应该安装缺少的库,但此后仍然无法正常工作。
  5. 我应用了Visual Studio的最新补丁-仍然无法正常工作
  6. 在Visual Studio通知中标记了PowerShell的更新,并与Data Lake和SQLServer更新一起选择了此更新。关闭Visual Studio后,它开始更新,完成后,我再次尝试,这次似乎可以正常工作。

我尝试了其他各种方法,但是其中之一可以解决问题。