Я пытаюсь построить как локально, так и на конвейере компоновки DevOps Azure (который использует скрипт сборки Cake) проект ASP.NET Framework в решении и опубликовать его. Наша старая версия была построена с помощью следующей команды:
MSBUILD /verbosity:%VERBOSITY% "%WORKSPACE%\src\Foundation\Security\OurProduct.SAML/OurProduct.SAML.csproj" /p:DeployOnBuild=true /p:Configuration=%CONFIGURATION% /p:WebPublishMethod=FileSystem /p:PublishProfile=%CONFIGURATION% /p:publishUrl=%WORKSPACE%\samlbuild\_PublishedWebsites\OurProduct.SAML
Я добавил его в Cake и сделал много разных правок в своем тесте. Вот текущая версия:
MSBuild(
SAMLProject,
new MSBuildSettings()
.WithProperty("Configuration", configuration)
.WithProperty("DeployOnBuild", "true")
//.WithProperty("PublishProfile", configuration)
.WithProperty("WebPublishMethod", "FileSystem")
.WithProperty("OutDir", SAMLDeployDirectory)
);
Удаляя или комментируя строку PublishProfile, я могу создавать локально, но не могу использовать размещенный агент VS2017 в DevOps Azure. Я получаю следующую ошибку на размещенном сервере:
"D:\a\1\s\PPUXL\src\Foundation\Security\OurProduct.SAML\OurProduct.SAML.csproj" (Build target) (1) ->
(Web_config_AfterBuild target) ->
D:\a\1\s\PPUXL\src\Foundation\Security\OurProduct.SAML\OurProduct.SAML.csproj(511,5): error : Could not write Destination file: Could not find a part of the path 'D:\a\1\s\PPUXL\src\Foundation\Security\OurProduct.SAML\bin\Web.config'.
Я видел этот веб-сайт (https://blog.todotnet.com/2013/11/deploy-website-to-windows-azure-with-web-config-transformations/)) и пробовал их решение вместе с некоторыми другими решениями, которые я видел здесь, при переполнении стека. Когда я указываю PublishProfile, он не собирается локально, поэтому я не осмелюсь подтолкнуть его к источнику. для тестирования на сервере. Я получаю следующую ошибку локально при указании профиля конфигурации "Dev" в качестве профиля публикации:
"C:\git\OurProduct\PPUXL\src\Foundation\Security\OurProduct.SAML\OurProduct.SAML.csproj" (Build target) (1) ->
(WebFileSystemPublish target) ->
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\Web\Deploy\Microsoft.Web.Publishing.Deploy.FileSystem.targets(93,5): error MSB3191: Unable to create directory "D:\jenkins\current\Stage\samlidp". Could not f
ind a part of the path 'D:\jenkins\current\OurProduct\samlidp'. [C:\git\OurProduct\PPUXL\src\Foundation\Security\OurProduct.SAML\OurProduct.SAML.csproj]
У меня есть все файлы конфигурации и их преобразования в корневом каталоге проекта. Итак, у меня есть следующие вопросы:
- Чего мне не хватает в моем скрипте Cake?
- Нужно ли мне изменять файл проекта или преобразовывать веб-конфигурации?
- Как мне построить свой код из его папки, но вывести его в каталог по своему выбору как локально, так и на сервере DevOps Azure, чтобы я мог создать артефакт публикации в AzDo?