Сеть VS2010 Развертывается: как удалить полные пути и автоматизировать setAcl?

Интегрированное веб-Развертывание в Visual Studio 2010 довольно хорошо. Это может создать пакет, готовый быть развернутым с помощью MSDeploy на целевой машине IIS. Проблема, этот пакет будет перераспределен клиенту, который установит его самому использование "Приложения Импорта" от IIS, когда MSDeploy будет установлен.

Пакет по умолчанию, создаваемый всегда, включает полный путь от машины разработки, "D:\Dev\XXX\obj\Debug\Package\PackageTmp" в исходном файле манифеста. Это не предотвращает установку, конечно, так как это было разработано этот путь, но это выглядит ужасным в диалоговом окне импорта и не имеет никакого значения клиенту. Хуже он задастся вопросом, что является теми путями, и это выглядит довольно сбивающим с толку.

Путем настройки .csproj файла (путем добавления свойств MSBuild, используемых задачей создания пакета), мне удалось добавить дополнительные параметры к пакету. Однако я провел большую часть дня в этих 2 600 строках длинная сеть. Publishing.targets, пытающийся понять, какой параметр влиял на "поведение" пути разработки, напрасно. Я также пытался использовать setAcl для настройки безопасности на данной папке после развертывания, но мне только удалось сделать это с MSBuild при помощи относительного пути... не должно иметь значения, если я разрешаю первую проблему все же.

Я мог изменить сгенерированный архив после его создания, но я предпочел бы, если бы все было автоматизировано с помощью MSBuild. Кто-либо знает, как сделать это?

15
задан Julien Lebosquain 2 June 2010 в 17:18
поделиться

1 ответ

Отображаемый путь определяется свойством _MSDeployDirPath_FullPath .

Это свойство задается следующей цепочкой свойств:

  • <_MSDeployDirPath_FullPath> @ (_ MSDeployDirPath -> '% (FullPath)')
  • <_ MSDeployDirPath Include = "$ (_) PackageTe >Dmp
  • <_PackageTempDir> $ (PackageTempRootDir) \ PackageTmp
  • $ (IntermediateOutputPath) Package

_MSDeployDirPath - @FullPath> (MSDeployDirPath - @FullPath) <- _PackageTempDir <- $ (PackageTempRootDir) \ PackageTmp

Как видите, у вас не может быть относительного пути, потому что _MSDeployDirPath_FullPath - это полный путь к _MSDeployDirPath .

Но вы можете упростить отображаемый путь, заменив свойство _PackageTempDir путем, который вы хотите отобразить для вашего клиента. (Этот путь будет использоваться как временный каталог для создания пакета)

Вы можете переопределить свойство:

  • В командной строке:

     msbuild.exe projectfile.csproj / t: Package / p: _PackageTempDir = C :\Упаковка
    
  • Или прямо в файле проекта:

     
    
    
    
    
     <_PackageTempDir> C: \ Package 
    
    
28
ответ дан 1 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: