пакет dotnet (.NET 5) создает дополнительную папку для файлов без расширения при упаковке staticwebassets

#visual-studio #.net-core #nuget

#visual-studio #.net-core #nuget

Вопрос:

dotnet pack создает дополнительную папку для файлов без расширения при упаковке staticwebassets.

Пример:

если в wwwroot / myfolder / myfile есть файл, он упаковывает его как wwwroot /myfolder / myfile /myfile

Однако package .props содержит правильный исходный путь и структуру. Это эффективно предотвращает публикацию проектов, в которых есть ссылка на этот пакет, потому что во время публикации задача msbuild вводит в заблуждение список файлов .props и выдает, например:

Ошибка MSB3025: исходный файл «C:Program Файлыdotnetsdk5.0.101SdksMicrosoft.NET.SdktargetsMicrosoft.NET.Publish.targets(237,5): C:Usersmyname.nugetpackagesthepackage1.0.0staticwebassetsassetslibsflot-chartsMakefile » на самом деле это справочник. Задача «Копировать» не поддерживает копирование каталогов.

Может ли кто-нибудь предложить обходной путь (помимо удаления или переименования файлов)?

Комментарии:

1. Есть какие-либо обновления по этой проблеме?

Ответ №1:

Похоже, что что-то не так с задачей копирования из вашего <packages_id>.props файла,

Задача копирования должна работать с файлами, а не с папкой, поэтому вы должны использовать это:

     <ItemGroup>
           <File Include="$(MSBuildThisFileDirectory)xxxstaticwebassetsassetslibsflot-chartsMakefile*.*"></File>
    </ItemGroup>
    
<Target Name="xxx" AfterTargets="xxx">
     <Copy SourceFiles="@(File)" DestinationFolder="xxx"></Copy>

</Target>
 

Комментарии:

1. Perry файл .props генерируется автоматически, если в нем есть ошибка, это сама проблема. Если в моих проектах нет артефактов, связанных с созданием пакетов, только файлы csproj. Весь процесс использует все значения по умолчанию и чистую команду dotnet pack

2. Вы использовали проект библиотеки классов razor? Не уверен, что ваш тип проекта и ваша подробная ситуация. Вы должны предоставить дополнительные инструкции о вашей ситуации, чтобы помочь нам устранить проблему. Возможно, вы могли бы поделиться небольшим образцом с github. Кроме того, вы должны установить Build Action файлы в wwwroot папке из вашего проекта Content .