В Visual Studio, когда мы публикуем в папке, эта папка содержит именно то, что нам нужно для развертывания.
В Azure Pipeline задача Build Solution создает кучу (для нас) ненужных файлов плюспочтовый файл (хорошо!).В zip-файле содержатся нужные нам файлы, но они находятся в безумном глубоком пути к папке:
\Content\D_C\a\1\s\src\MyProject\obj\Release\Package\PackageTmp\our-files.dll
. Что бы мы предпочли:
\our-files.dll
. Он также изменяет строки подключения в файле web.config.для поддержки сценария развертывания, с которым он поставляется.Нам не нужен этот сценарий, и эта модификация является проблемой (которую мы отключили, добавив <AutoParameterizationWebConfigConnectionStrings>false</...>
в файл .csproj - чёрт!) `.
Мы попытались возиться с параметрами на этапе Build Solution:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
Изменение DeployOnBuild
на false
привело к тому, что $ (build.artifactsstagingdirectory) был пуст (в результате чего на следующем шаге ничего не было развернуто)
Изменение WebPublishMethod
на FileSystem
не изменило (попробуйте найти документацию по допустимым значениям!)
Изменение PackageAsSingleFile
на false
сделал то, что сделалможно было бы ожидать - без zip, но содержимое все еще было скрыто в этой глубокой структуре папок.
Наш нисходящий скрипт может открыть файл манифеста, xpath из глубокого путизапеченный в zip (путь всегда начинается с d_C
?), разархивируйте и возьмите содержимое оттуда - но какая боль и как ненужное.
Есть ли способ опубликовать просто хорошую чистую сборку- почтовый индекс с содержимым, которое распаковывается напрямуюмне файлы как обычный Джейн Публиковать из Visual Studio делает?