Интегрированное развертывание Web в Visual Studio 2010 довольно приятно. Он может создать пакет, готовый к развертыванию с использованием MSDeploy на целевой машине IIS. Проблема в том, что этот пакет будет перераспределен клиенту, который сам установит его, используя "Импорт приложения" из IIS при установке MSDeploy.
Созданный по умолчанию пакет всегда включает полный путь от машины разработки "D:\Dev\XXX\obj\Debug\Package\PackageTmp" в исходном файле манифеста. Это не препятствует установке курса, поскольку он был разработан таким образом, но он выглядит уродливым в диалоговом окне импорта и не имеет никакого значения для клиента. Хуже того, он будет задаваться вопросом, каковы эти пути, и это выглядит довольно запутанным.
Отредактировав файл .csproj(добавив свойства MSBuild, используемые задачей создания пакета), мне удалось добавить дополнительные параметры в пакет. Тем не менее, я провел большую часть дня в 2600-строчных сетях Web.Publishing.targets, пытаясь понять, какой параметр повлиял на поведение "пути развития", тщетно. Я также попытался использовать setAcl для настройки безопасности в заданной папке после развертывания, но мне удалось сделать это только с помощью MSBuild с помощью относительного пути... неважно, разрешаю ли я первую проблему.
Я могу изменить созданный архив после его создания, но я бы предпочел, чтобы все было автоматизировано с помощью MSBuild. Кто-нибудь знает, как это сделать?