Я использую устаревшее веб-приложение с msbuild "Visual Studio Build Tools 2017" версия 15.9.12.Это веб-приложение ссылается на пакет NuGet (используется PackageReference ), который включает изображение в качестве файла содержимого.
<ItemGroup>
<Content Include="Resources\Image.png" />
</ItemGroup>
Здесь часть файла Nuspec , сгенерированная впакет:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
...
<dependencies>
...
</dependencies>
<frameworkAssemblies>
...
</frameworkAssemblies>
<contentFiles>
<files include="any/net471/Resources/Image.png" buildAction="Content" />
<files include="any/net471/Resources/Image.png" buildAction="Content" />
</contentFiles>
</metadata>
</package>
Странно, изображение появляется дважды в contentFiles
, но это не проблема.
Сборка завершается с ошибкой:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ Microsoft \ VisualStudio \ v15.0 \ WebApplications \ Microsoft.WebApplication.targets (182,5): ошибка MSB3021: невозможно скопировать файл "C: \Пользователи \ user.nuget \ packages \ mypackage \ 1.0.0-release-anycpu \ contentFiles \ any \ net471 \ Resources \ Image.png "в" C: \ Builds \ Binaries \ _PublishedWebsites \ WebApplication.NET471 \ C: \ Users \user.nuget \ пакеты \ MyPackage \ 1.0.0-релиз-AnyCPU \ contentFiles \ любой \ net471 \ Resources \ image.png».Формат данного пути не поддерживается.
Обратите внимание на двойной c:\
в пути вывода.
Когда я строю из VisualStudio, там нет ошибок, но файл не находится в выходном каталоге