Как включить дополнительные файлы с помощью пакетов веб-развертывания VS2010?

вы defIne как DB_USER, но используете как DB_USERNAME. Также php сообщает имя пользователя @ localhost cant access. Не root @ localhost.

Измените параметр define или connect.

124
задан Ciro Santilli 新疆改造中心法轮功六四事件 21 August 2013 в 07:28
поделиться

2 ответа

Отличный вопрос. Я только что разместил очень подробную запись в блоге об этом на странице Средство веб-развертывания (MSDeploy): сборка пакета, включая дополнительные файлы или исключая определенные файлы .

Вот синопсис. После включения файлов я также показываю, как исключить файлы.

Включение дополнительных файлов

Включение дополнительных файлов в пакет немного сложнее, но все же непросто, если вы знакомы с MSBuild, а если нет, то прочтите это. Для этого нам нужно подключиться к той части процесса, которая собирает файлы для упаковки. Цель, которую нам нужно расширить, называется CopyAllFilesToSingleFolder. У этой цели есть свойство зависимости, PipelinePreDeployCopyAllFilesToOneFolderDependsOn, которое мы можем задействовать и внедрить в нашу собственную цель. Итак, мы создадим цель с именем CustomCollectFiles и внедрим ее в процесс. Мы достигаем этого с помощью следующего (помните после оператора импорта).

<PropertyGroup>
  <CopyAllFilesToSingleFolderForPackageDependsOn>
    CustomCollectFiles;
    $(CopyAllFilesToSingleFolderForPackageDependsOn);
  </CopyAllFilesToSingleFolderForPackageDependsOn>

  <CopyAllFilesToSingleFolderForMsdeployDependsOn>
    CustomCollectFiles;
    $(CopyAllFilesToSingleFolderForMsdeployDependsOn);
  </CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>

Это добавит нашу цель в процесс, теперь нам нужно определить саму цель. Предположим, у вас есть папка с именем Extra Files, которая находится на 1 уровень выше вашего веб-проекта. Вы хотите включить все эти файлы. Вот цель CustomCollectFiles, и после этого мы обсудим ее.

<Target Name="CustomCollectFiles">
  <ItemGroup>
    <_CustomFiles Include="..\Extra Files\**\*" />

    <FilesForPackagingFromProject  Include="%(_CustomFiles.Identity)">
      <DestinationRelativePath>Extra Files\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
    </FilesForPackagingFromProject>
  </ItemGroup>
</Target>

Здесь я создал элемент _CustomFiles и в атрибуте Include сказал ему, чтобы он собирал все файлы в этой папке и в любой папке под ней. Если по какой-либо причине вам нужно исключить что-то из этого списка, добавьте атрибут Exclude в _CustomFiles .

Затем я использую этот элемент для заполнения элемента FilesForPackagingFromProject. Это тот элемент, который MSDeploy фактически использует для добавления дополнительных файлов. Также обратите внимание, что я объявил значение DestinationRelativePath метаданных. Это определит относительный путь, по которому он будет помещен в пакет. Здесь я использовал оператор Extra Files% (RecursiveDir)% (Filename)% (Extension). То, что он говорит, - это разместить его в том же относительном месте в пакете, что и в папке Extra Files.

Исключение файлов

Если вы откроете файл проекта веб-приложения, созданного с помощью VS 2010, внизу вы найдете строку с расширением.

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

Кстати, вы можете открыть файл проекта внутри VS. Щелкните правой кнопкой мыши проект и выберите "Выгрузить проект". Затем щелкните правой кнопкой мыши выгруженный проект и выберите «Редактировать проект».

Это заявление будет включать все цели и задачи, которые нам нужны. Большинство наших настроек должны быть после этого импорта, если вы не уверены, что нужно делать это после! Итак, если у вас есть файлы, которые нужно исключить, есть имя элемента ExcludeFromPackageFiles, которое можно использовать для этого. Например, предположим, что у вас есть файл с именем Sample.Debug.js, который включен в ваше веб-приложение, но вы хотите, чтобы этот файл был исключен из созданных пакетов.Вы можете разместить фрагмент ниже после этого оператора импорта.

<ItemGroup>
  <ExcludeFromPackageFiles Include="Sample.Debug.xml">
    <FromTarget>Project</FromTarget>
  </ExcludeFromPackageFiles>
</ItemGroup>

При объявлении заполнения этого элемента файлы будут автоматически исключены. Обратите внимание на использование здесь метаданных FromTarget. Я не буду здесь вдаваться в подробности, но вы должны знать, что нужно всегда это указывать.

171
ответ дан 24 November 2019 в 01:07
поделиться

Кроме того, возможно установить файл как Содержание | Копия всегда

Also, it is possible to set the file as Content | Copy always

0
ответ дан 24 November 2019 в 01:07
поделиться
Другие вопросы по тегам:

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