Итак, я пытаюсь создать приложение .NET Core с MSBuild и заставить его создать папку для веб-развертывания, но без автоматического помещения в zip-файл. Я могу сделать это для приложений .NET Framework, используя /p:WebPublishMethod=Package
и /p:PackageAsSingleFile=false
, это создает ту же структуру папок, но без добавления ее в zip-файл. Однако в приложении .NET Core этот флаг, кажется, игнорируется и всегда упаковывает конечный пакет в архив.
Причина, по которой я не хочу, чтобы он был заархивирован, заключается в том, что мне нужно добавить ряд "пользовательских" файлов в сборку, прежде чем я смогу развернуть ее. Я не могу добавить файлы во время самой сборки, потому что у нас есть несколько разных клиентов, и все они используют одно и то же «базовое» программное обеспечение, а затем необходимо добавить файлы, специфичные для клиента, после слов. Поэтому я хочу создать «базовое» программное обеспечение, затем иметь возможность скопировать выходную папку, добавить файлы, специфичные для клиента, и затем сжать эту сборку для развертывания в IIS. Это экономит огромное количество времени, потому что альтернативой является создание новой сборки для каждого клиента, хотя 95% программного обеспечения одинаково.
Так что есть другой способ сделать это с приложениями .NET Core?
Я тестировал MSBuild через командную строку. Решение имеет сочетание веб-сайтов .NET Framework и .NET Core asp.net. Это то, что я запускаю:
msbuild.exe "Solution.sln" /nologo /nr:false /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=false /p:SkipInvalidConfigurations=true /p:PreBuildEvent="" /p:PostBuildEvent="" /p:BasePackageLocation="C:\Temp\BuildOutput" /p:platform="any cpu" /p:configuration="release"
Это работает для веб-сайтов .NET Framework, но веб-сайты .NET Core продолжают архивироваться
И просто обратите внимание, что BasePackageLocationявляется пользовательским свойством, которое устанавливает для PackageLocation значение «$ (BasePackageLocation) \ $ (MSBuildProjectName) \», чтобы каждый веб-сайт помещался в собственный подкаталог