Исключить файлы из развертывания веб-сайта с помощью msbuild - PullRequest
5 голосов
/ 15 июня 2011

У меня есть проект веб-сайта, который я разворачиваю с помощью msbuild.В проекте есть несколько файлов и папок, которые необходимы для сборки (например, файлы замены части web.config), но я не хочу развертывать их на целевом сайте.

Лучшее, что я мог подуматьof является целью пост-сборки, которая удаляет эти файлы, но я хотел бы знать, есть ли способ, чтобы эти файлы не копировались в выходную папку.

Ответы [ 5 ]

7 голосов
/ 29 октября 2012

Вы можете выбрать файлы и установить для них «Build Action» на «ExcludeFromPackageFiles». Таким образом Visual Studio будет редактировать csproj XML, и вам не нужно.

7 голосов
/ 18 октября 2012

Привет Проверьте это сообщение в блоге это спасло мой день,

Я пытался исключить не минимизированную версию javascripts и использовать только минимизированную версию при публикации (я удаляю большие javascripts и chirp.config), она нужна только для отладки.

просто поместите это в файл проекта, как указано в ссылке.

<ItemGroup>
    <ExcludeFromPackageFolders Include="Scripts\large">
      <FromTarget>Project</FromTarget>
    </ExcludeFromPackageFolders> 


    <ExcludeFromPackageFiles Include="Scripts\mash.js.chirp.config" />  
    <ExcludeFromPackageFiles Include="Content\mash.js.chirp.config" />
  </ItemGroup>

Опубликованный сайт не будет включать следующее:

  • Scripts \ большой
  • mash.js.chirp.config
3 голосов
/ 16 июня 2011

Вы можете использовать MSDeploy с конвейером веб-публикации, чтобы исключить файлы, которые будут включены в создание пакета. Вы можете использовать что-то вроде этого, если хотите исключить, например, папку App_Data из развернутого пакета

<Target Name="ExcludeApp_Data" DependsOnTarget="$(ExcludeApp_DataDependsOn)" Condition="$(ExcludeApp_Data)" > 
  <ItemGroup>
    <ExcludeFromPackageFolders Include="App_Data">
      <FromTarget>ExcludeApp_Data</FromTarget>
    </ExcludeFromPackageFolders>
  </ItemGroup>
</Target>

Каким-то образом редактор не отображает код должным образом. Вышеуказанное генерируется внутри файла proj при настройке веб-пакета Package / Publish. Вы можете добавить свою собственную цель, чтобы сделать это.

Например, если вы хотите исключить файлы Scripts \ jquery из вашей сборки, создайте отдельный файл ExcludeScriptFiles.wpp.targets, как показано ниже

<ItemGroup> 
  <ExcludeFromPackageFolders Include="Internal">
    <FromTarget>ExcludeScriptFiles.wpp.targets</FromTarget>         
  </ExcludeFromPackageFolders>
  <ExcludeFromPackageFiles Include="Scripts\jquery.js;xyz.js">
    <FromTarget>ExcludeScriptFiles.wpp.targets </FromTarget> 
  </ExcludeFromPackageFiles>
</ItemGroup>

Это простой пример для написания своей цели.

Надеюсь, это поможет

3 голосов
/ 15 июня 2011

в проводнике свойств для файлов измените параметр «копировать в выходной каталог» на «не копировать»

enter image description here

0 голосов
/ 28 марта 2018

Я использую Visual Studio 2012 с Jenkins, и мне помогло only , изменив «Build Action» на «None:»

enter image description here

Внутренне это устанавливает тег XML в файле PROJECT .csproj из «Содержимое» в «Нет»: «

<None Include="form.coffee" />

Я закрыл проект, затем вручнуюотредактировал файл с помощью другого редактора, чтобы исключить все мои файлы кофе en mass .

(все мои файлы кофе по-прежнему преобразуются в файлы js.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...