Что я получаю, так это то, что команда завершена, и я вижу около 241 DLL и необходимые файлы в папке. Я что-то упускаю в аргументе команды?
Для этого вопроса вы можете попробовать изменить аргумент /p:outdir="D:\Pub"
на /p:PublishDir="D:\Pub"
. Это потому, что аргумент outdir
используется для хранения выходных файлов, а не файлов публикации, он содержит выходные данные сборки проектов (включая эталонный проект). Это причина, по которой в папке около 241 dll и необходимые файлы.
Когда я проверяю, если я изменю аргумент на PublishDir
, он работает нормально:
Что касается второго вопроса, я не знаком с облачной службой Azure, поскольку я знаю о MSBuild / Visual Studio, мы должны создать «основной» проект вместо эталонного проекта, поэтому вы можете попытаться создать AzureCloudService.ccproj
или создайте файл решения .sln
.
Кроме того, когда мы строим проект / решение, нам не нужно указывать папку решения, просто укажите файл проекта или решение напрямую:
msbuild.exe "TheRelativePathForYourSolutionInRepos.sln" /t:Publish /p:DeployOnBuild=true /p:AutomatedBuild=True /p:configuration=release /p:TargetProfile=Cloud /p:PublishDir="D:\Pub"
Если это не помогло решить ваши вопросы, поделитесь журналом ошибок сборки в вашем вопросе.
Обновление:
Во второй части у меня есть событие пост-сборки, которое делает
запутывание.
Если в вашем событии сборки вы используете какие-либо макросы, например $(SolutionDir)
, но создаете файл проекта, вы получите эту ошибку. Поскольку в информации о решении существует справочная информация о проекте, мы не можем получить к ней доступ, когда строим только один проект.
Попробуйте заменить все $(SolutionDir)
на $(ProjectDir)..\
Update2:
Поскольку вы можете без проблем создать файл .sln
на своем локальном компьютере, вы также можете создать файл .sln
с конвейером Azure. В качестве теста я мог создать файл .sln в конвейере Azure:
Кроме того, если вы замените $(SolutionDir)
на $(ProjectDir)..\
, как вы по-прежнему получите ошибку Undefined ? Попробуйте перепроверить событие вашей сборки, или вы можете поделиться им в вопросе.
Надеюсь, это поможет.