project.json을 사용하여 Visual Studio 2015에서 MsBuild csproj 표준을 사용하여 Visual Studio 2017로 업그레이드 한 ASP.NET Core 1.1 응용 프로그램이 있습니다. 이 응용 프로그램은 리눅스의 도커 컨테이너에 배포되며 여기서 official images from microsoft이 사용됩니다. BundlerMinifier이 누락되었습니다. 그러나 Visual Studio 2017에서는 표시기가 아니라 Windows에서는 dotnet publish
을 사용하지 않습니다.BundlerMinifierCore 파일이 dotnet에 복사되지 않음
번들이 생성 되었음이 확인되었습니다. 그러나 솔루션의 wwwroot
폴더에는 게시 출력 폴더가 없습니다 (--output
~ dotnet publish
전달). 말하자면, 내 VS 솔루션이 도커 컨테이너에있는 /app
이 있습니다. 이제 dotnet publish --output /app/output
을 실행합니다. 내 묶음 파일은 /app/output/wwwroot
대신에 /app/src/{projectName}/wwwroot
에 있습니다.
나는이 같은 bundleconfig.json
에서 상대 경로를 사용
[
{
"minify": { "enabled": false },
"outputFileName": "wwwroot/site.min.css",
"inputFiles": [
"wwwroot/lib/my-input-file.css"
]
}
]
이 번들을 작성하려면, 나는 매우 익숙 내 csproj
파일
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="bower install" />
<Exec Command="dotnet bundle" />
</Target>
에서 다음 출판 스크립트를 아니에요있다 MsBuild. wwwroot에 이미 여기에 포함 및 뷰의 작품 같은 다른 파일을 복사하기 때문에 그러나 일부 수의학 연구에 따르면, 다음 줄은
<ItemGroup>
<None Update="wwwroot\**\*;Views\**\*.cshtml;Areas\**\*.cshtml">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
</ItemGroup>
(wwwroot에 같은) 출력 디렉토리에 파일을 복사 할 책임이 보인다, 나는이 생각 실행 ordner에 관한 문제. MsBuild와 같은 것은 MsBuild가 파일을 게시하기 전에 파일을 복사합니다. 그러나 이것은 PrepareForPublish
목표 전에 이루어지기 때문에 로직에서 가능하지 않은 것으로 보입니다. 이는 Microsoft docs에 따라 올바른 방법입니다.
감사합니다. 문제가 해결되었습니다. 그러나'PrepareForPublish' 이전에'dotnet bundle '을 실행했을 때 버그가있는 것으로 나타났습니다. 현재 해결 방법은'dotnet publish '전에 수동으로'dotnet bundle'을 호출하는 것입니다. 이것은 우리의 수정과 함께 작동합니다. – Lion
https://github.com/dotnet/sdk/issues/1044 –