2016-09-30 12 views
0

я получил следующий NANT скрипт, который делает сборки и развертывания:Visual Studio Web Deploy удаление библиотек в процессе выпуска публиковать

<msbuild project=".\Code\Code.sln" target="Build"> 
    <property name="Configuration" value="${Build.Configuration}" /> 
    <property name="Platform" value="${build.platform}" /> 
    <property name="CreatePackageOnPublish" value="true" /> 
    <property name="DeployOnBuild" value="true" /> 
    <property name="DeployIISAppPath" value="Default Web Site\${Web.Path}" /> 
</msbuild> 

<exec program=".\Code\CodeWeb\obj\${Build.Configuration}\Package\CodeWeb.deploy.cmd" commandline="/y /m:webhost.mycompany.com /u:DOMAIN\user /p:password"/> 

Моя проблема заключается в следующем: когда я раскрываю в Debug или RC конфигураций сборки, все работает отлично. Все файлы присутствуют в каталоге публикации, и код обновляется. Однако при развертывании в конфигурации выпуска процесс публикации удаляет три DLL-файла, которые мне нужны для работы моего сайта.

Этот же код является построением и публикацией для всех конфигураций сборки, поэтому я не думаю, что это может быть проблемой. Кроме того, я не знаю, является ли какой-либо из моих профилей публикации источником проблемы, но, если это так, единственные заметные отличия в том, что Production.pubxml.user содержит элемент <ItemGroup> со всей связью <File> дочерних элементов, перечисляющих файлы, в которых Development.pubxml.user не содержит этого. Однако я скопировал <ItemGroup> из Production.pubxml.user в Development.pubxml.user, и он не нарушил процесс публикации разработки.

Мой msdeploy.exe журнал начинается, как это для производства публиковать

SetParameters from: 
"C:\Shared\Code\CodeWeb\obj\Release\Package\CodeWeb.SetParameters.xml" 
You can change IIS Application Name, Physical path, connectionString 
or other deploy parameters in the above file. 
------------------------------------------------------- 
Start executing msdeploy.exe 
------------------------------------------------------- 
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='C:\Shared\Code\CodeWeb\obj\Release\Package\CodeWeb.zip' -dest:auto,computerName="webhost.mycompany.com",userName="DOMAIN\user",password="password",includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"C:\Shared\Code\CodeWeb\obj\Release\Package\CodeWeb.SetParameters.xml" 
Info: Using ID '52641dbe-b1e5-4ff5-9962-01386a7fe513' for connections to the remote server. 
Info: Deleting file (Default Web Site\CodeStaging\bin\System.Net.Http.Formatting.dll). 
Info: Deleting file (Default Web Site\CodeStaging\bin\System.Web.Http.dll). 
Info: Deleting file (Default Web Site\CodeStaging\bin\System.Web.Http.WebHost.dll). 

В разработчика публиковать, он просто не удалить эти файлы. Я разложил файлы .deploy.cmd, созданные msbuild, а также сделанные на уровне папок сравнения пакетов .zip. Развертывание файлов .deploy.cmd, но я не могу найти никаких различий, о которых стоит говорить.

При дальнейших исследованиях файлы удаляются только при создании пакета msdeploy с моей производственной машины. Если я проверю trunk/на обеих моих производственных и Dev-машинах и запустим код сборки и развертывания ниже, развертывание в любой среде из машины Dev работает правильно и развертывание в любой среде с производственной машины удалит мои необходимые сборки. Есть ли какие-то глобальные параметры msdeploy где-то, что перепуталось? Кроме того, если вы можете ответить на этот вопрос, возможно, взгляните на мой other, similar one.

Может ли кто-нибудь объяснить, почему один и тот же код нарушает мое развертывание при запуске с моей производственной машины, но отлично работает при запуске с моей машины dev, независимо от среды, в которую я развертываю?

ответ

0

Я не совсем уверен, почему это работает, как недостающие узлы не в GAC на неисправной машине, но при добавлении

<Private>True</Private> 

по каждой из ссылок на этих недостающих узлов в моем файле .csproj имеет починил это. Список литературы выглядеть следующим образом:

<Reference Include="System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> 
    <Private>True</Private> 
    <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.4.0.20710.0\lib\net40\System.Net.Http.Formatting.dll</HintPath> 
</Reference> 

Предоставлено http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html

0

это часть ваших параметров публикации,

Если вы идете построить | Опубликовать {Name} проекта

Откроется диалоговое окно

перейти в настройки и Файл Параметры публикации и вы увидите опцию Удалить все существующие файлы ранее публикации. Снимите этот флажок, если вы не хотите, чтобы он удалял ваши файлы при развертывании.

+0

Это странно, хотя. Действительно ли я использую эти профили публикации, так как я создаю скрипт развертывания с помощью msbuild?Кроме того, в моем профиле «Профиль» есть «Удалить дополнительные файлы в месте назначения», но так же работает моя разработка. – sirdank

 Смежные вопросы

  • Нет связанных вопросов^_^