2016-04-09 13 views
0

У меня есть веб-приложение в Visual Studio 2012. Я публикую этот сайт в IIS, используя публичные профили (.pubxml).Как поделиться конфигурацией параметров между профилем публикации VS и MSDeploy SetParameters.xml?

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>MSDeploy</WebPublishMethod> 
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
    <LastUsedPlatform>Any CPU</LastUsedPlatform> 
    <ExcludeApp_Data>False</ExcludeApp_Data> 
    <MSDeployServiceURL>server</MSDeployServiceURL> 
    <DeployIisAppPath>site</DeployIisAppPath> 
    <RemoteSitePhysicalPath /> 
    <SkipExtraFilesOnServer>False</SkipExtraFilesOnServer> 
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod> 
    <EnableMSDeployBackup>True</EnableMSDeployBackup> 
    <UserName>domain\username</UserName> 
    </PropertyGroup> 
    <ItemGroup> 
    <MSDeployParameterValue Include="MyParam"> 
     <ParameterValue>MyValue</ParameterValue> 
    </MSDeployParameterValue> 
    ... 
    </ItemGroup> 
</Project> 

Помимо установки I A CI построить пакет с MSBuild, а затем использовать его для публикации различных Environnement с помощью MSDeploy. Оба в 2 разделяют шаги, поэтому я могу повторно использовать один и тот же пакет несколько раз. Для этого мне нужно использовать SetParameters.xml с другим синтаксисом, чем профили публикации, используемые VS.

<?xml version="1.0" encoding="utf-8"?> 
<parameters> 
    <setParameter name="IIS Web Application Name" value="site" /> 
    <setParameter name="MyParam" value="MyValue" /> 
    ... 
</parameters> 

Есть ли способ совместного использования конфигурации параметров в одном файле, поэтому я могу поддерживать только один файл? Я вижу this answers с 2014 года, но мне не удалось заставить его работать.

ответ

0

Я исследовал это и не могу найти способ переопределить файл SetParameters при публикации через VisualStudio. Это не похоже на то, что задачи MSBuild поддерживают это.

Лучшей альтернативой, которую я могу предложить, является использование командной строки вместо прямого опубликования. Вы можете создать пакет MSDeploy путем вызова целевой пакет:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild /t:Package /p:PublishProfile=<profile-name> 

, а затем развернуть с помощью MSDeploy.exe:

"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package=WebApplication7.zip -dest:manifest=WebApplication7.DestManifest.xml -setParamFile:SetParameters.custom.xml 

Следующие посты блога имеет более подробную информацию:

https://dotnetcatch.com/2016/02/25/the-anatomy-of-a-webdeploy-package/

+0

Спасибо за ваш ответ. Именно так я развертываю свои пакеты с CI. Мой вопрос заключается в том, чтобы найти умный способ объединить это решение с кликом после публикации интегрированного в VS, чтобы позволить развертываниям с меньшими конфигурационными файлами. – Rom1

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

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