8

我有一个使用 msbuild 部署的网站项目。在项目中有一些构建所需的文件和文件夹(例如 web.config 部分替换文件),但我不想部署到目标站点。

我能想到的最好的方法是删除这些文件的构建后目标,但我想知道是否有办法让这些文件不复制到输出文件夹。

4

5 回答 5

8

嗨,看看这篇博文,它拯救了我的一天,

我试图排除 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>

发布的网站将不包括以下内容:

  • 脚本\大
  • mash.js.chirp.config
于 2012-10-18T10:47:20.880 回答
7

您可以选择文件并将其“构建操作”设置为“ExcludeFromPackageFiles”。这样,Visual Studio 将编辑 csproj xml,而您不必这样做。

于 2012-10-29T15:31:12.063 回答
3

在文件的属性资源管理器中,将选项“复制到输出目录”更改为“不复制”

在此处输入图像描述

于 2011-06-15T13:44:50.570 回答
3

您可以将 MSDeploy 与 Web 发布管道一起使用来排除要包含在包创建中的文件。如果你想从部署的包中排除例如 App_Data 文件夹,你可以使用这样的东西

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

不知何故,编辑器无法正确显示代码。当您配置打包/发布 web 时,会在 proj 文件中生成上述内容。您可以添加自己的目标来完成它。

例如,如果要从构建中排除 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>

这只是一个编写您自己的目标的简单示例。

希望这可以帮助

于 2011-06-16T02:41:27.297 回答
0

我将 Visual Studio 2012 与 Jenkins 一起使用,唯一对我有用的是将“构建操作”更改为“无:”

在此处输入图像描述

这在内部将PROJECT .csproj 文件中的 XML 标记从“内容”设置为“无:”

<None Include="form.coffee" />

我关闭了项目,然后使用另一个编辑器手动编辑了文件,以排除我所有的咖啡文件

(我所有的咖啡文件仍然被转编译为 js 文件。)

于 2018-03-28T14:18:21.650 回答