Publi sh Сайт не использует Transformed web.config - PullRequest
0 голосов
/ 20 февраля 2020

Я создал решение, содержащее веб-сайт (не WebApp) с VS Express 2013. Я использую файл web.Release.config для процесса publi sh. Это хорошо работало с VS 2013.

Теперь, когда я перешел на VS 2019 Community, для преобразования web.config использовался web.Debug.config, хотя publi sh было сделано для «Release». Я предполагаю, что это потому, что в диспетчере конфигурации только «Отладка» возможна для любой конфигурации.

В другой теме я обнаружил, что мне пришлось изменить website.publishproj с Debug на Release:

<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>

Теперь для преобразования используется web.Release.config:

"web.config" wurde mithilfe von "C:\Users\<project path>\Web.Release.config" in "C:\Users\<some temporary path>\obj\Release\TransformWebConfig\transformed\web.config" transformiert.

В этот файл действительно внесены изменения, необходимые для выпуска. Однако в каталоге назначения web.config не содержит этих изменений. Кажется, это оригинальный файл web.config без преобразования.

Что нужно сделать, чтобы Publi sh скопировал преобразованный файл web.config?

Это мой файл .pub xml :

<?xml version="1.0" encoding="utf-8"?>
<!--
Auto generated comment... 
-->

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>C:\Inetpub\vhosts\<website name>.com\httpdocs</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>

и вот website.publishproj:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>10.0.30319</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{45ff7195-6038-4b17-91ce-611a467ac837}</ProjectGuid>
    <SourceWebPhysicalPath>$(MSBuildThisFileDirectory)</SourceWebPhysicalPath>
    <SourceWebVirtualPath>/(Source Path Name)</SourceWebVirtualPath>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <SourceWebProject>http://localhost:56406</SourceWebProject>
    <SourceWebMetabasePath>/IISExpress/7.5/LM/W3SVC/2/ROOT</SourceWebMetabasePath>
  </PropertyGroup>
  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <!-- for VS2010 we need to use 10.5 but for VS2012+ we should use VisualStudioVersion -->
    <WebPublishTargetsVersion Condition=" '$(WebPublishTargetsVersion)' =='' and '$(VisualStudioVersion)' == 10.0 ">10.5</WebPublishTargetsVersion>
    <WebPublishTargetsVersion Condition=" '$(WebPublishTargetsVersion)'=='' ">$(VisualStudioVersion)</WebPublishTargetsVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(WebPublishTargetsVersion)</VSToolsPath>
    <_WebPublishTargetsPath Condition=" '$(_WebPublishTargetsPath)'=='' ">$(VSToolsPath)</_WebPublishTargetsPath>
    <AssemblyFileVersion Condition="'$(AssemblyFileVersion)' == ''">1.0.0.0</AssemblyFileVersion>
    <AssemblyVersion Condition="'$(AssemblyVersion)' == ''">1.0.0.0</AssemblyVersion>
  </PropertyGroup>
  <ItemGroup>
    <AssemblyAttributes Include="AssemblyFileVersion">
      <Value>$(AssemblyFileVersion)</Value>
    </AssemblyAttributes>
    <AssemblyAttributes Include="AssemblyVersion">
      <Value>$(AssemblyVersion)</Value>
    </AssemblyAttributes>
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Accessories\Lib\Runtime\BaseLib\BaseLib.csproj">
      <Project>{8A827F3E-CA83-4765-988D-937B0B608201}</Project>
      <Name>BaseLib</Name>
    </ProjectReference>
    <ProjectReference Include="..\Accessories\Lib\Runtime\Config\Config.csproj">
      <Project>{1B78D777-B4F8-4CEA-9A4F-554807D1E5BF}</Project>
      <Name>Config</Name>
    </ProjectReference>
    <ProjectReference Include="..\Accessories\Lib\Runtime\GardenLib\GardenLib.csproj">
      <Project>{30B09928-B911-4803-982F-519C4CDB8860}</Project>
      <Name>GardenLib</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(_WebPublishTargetsPath)\Web\Microsoft.WebSite.Publishing.targets" />
</Project>

1 Ответ

0 голосов
/ 24 февраля 2020

После того, как у меня возникли некоторые проблемы с публикацией моего веб-сайта, я переключился обратно на VS2013 Express, где мой процесс publi sh работает так же, как и раньше.

Может быть, это ошибка в Visual Studio?

...