Виртуальный каталог MsDeploy преобразуется в виртуальное приложение при развертывании - PullRequest
3 голосов
/ 17 февраля 2012

Для правильной работы моей CMS ее необходимо развернуть в виртуальном каталоге под корнем www, чтобы он мог получить доступ (через отражение) к веб-сайту для управления (примечание: CMS = N2CMS).При использовании Visual Studio «Publish To Web» все в порядке.Но когда я генерирую пакет с помощью командной строки msbuild и публикую эту версию, мой виртуальный каталог преобразуется в виртуальное приложение.

Я настроил на своем удаленном сервере виртуальный каталог '/ n2' под моим веб-приложением IIS ('exampleapp ') и настроил этот путь в параметрах пакета / веб-публикации ( веб-сайт IIS / имя приложения для использования на конечном сервере ) в моем проекте в Visual Studio.

Чтобы сгенерировать пакет развертывания:

msbuild.exe myproject.csproj /T:Package

Создается сжатый пакет моего кода вместе с командными файлами командной строки MsDeploy для выполнения (стандартная цель msbuild / msdeploy).

Сгенерированный SetParameters.xml содержит следующее:

<?xml version="1.0" encoding="utf-8"?>
<parameters>
  <setParameter name="IIS Web Application Name" value="exampleapp/n2" />
</parameters>

Сгенерированный SourceManifest.xml содержит следующее

<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
  <IisApp path="C:\...shortened-path...\PackageTmp" managedRuntimeVersion="v4.0" />
  <setAcl path="C:\...shortened-path...\PackageTmp" setAclResourceType="Directory" />
  <setAcl path="C:\...shortened-path...\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" />
</sitemanifest>

Кто-нибудь понял, почему виртуальный каталог преобразуется в виртуальное приложение?

Ответы [ 2 ]

4 голосов
/ 22 июня 2012

Я добился успеха при следующей комбинации параметров развертывания (в csproj) при публикации проекта веб-приложения (WAP) в виртуальном каталоге без пометки его как приложения IIS:

<DeployOnBuild>True</DeployOnBuild>
<DeployAsIisApp>False</DeployAsIisApp>
<DeployIisAppPhysicalPath>MyWebSite/MyVirtualDirectory</DeployIisAppPhysicalPath>
4 голосов
/ 18 февраля 2012

В файле Microsoft.Web.Publishing.targets для DeployAsIisApp по умолчанию установлено значение true:

<Условие DeployAsIisApp = "'$ (DeployAsIisApp)' == ''"> true

Вы должны иметь возможность переопределить его на false, добавив его в соответствующий элемент PropertyGroup в файле проекта или в файле .wpp.targets в папке проекта; о редактировании файла проекта см.

http://msdn.microsoft.com/en-us/library/ff398069.aspx

...