使用msbuild排除网站部署中的文件

| 我有一个使用msbuild部署的网站项目。在项目中,构建需要一些文件和文件夹(例如,web.config零件替换文件),但我不想将其部署到目标站点。 我能想到的最好的方法是删除这些文件的构建后目标,但是我想知道是否有一种方法可以将这些文件不复制到输出文件夹中。     
已邀请:
        您可以选择文件并将其\“ Build Action \”设置为\“ ExcludeFromPackageFiles \”。这样,Visual Studio便可以编辑csproj xml,而您不必这样做。     
        嗨,请检查此博客文章,它挽救了我的一天, 我试图排除未缩小版本的javascript,并且仅在发布时使用缩小版本(我正在删除大型javascript和chirp.config),这仅是调试所需的版本。 只需按照链接上的说明将其放在Project文件中即可。
<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     
        在文件的属性浏览器中,将选项“复制到输出目录”更改为“不复制”     
        您可以将MSDeploy与Web Publishing Pipeline一起使用,以排除要包含在包创建中的文件。 如果要从已部署的软件包中排除例如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文件中生成。您可以添加自己的目标来完成它。 例如,如果要从构建中排除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>
这只是编写您自己的目标的简单示例。 希望这可以帮助     
        我正在将Visual Studio 2012与Jenkins结合使用,唯一对我有用的是将\“ Build Action \”更改为\“ None:\” 在内部,这会将PROJECT.csproj文件中的XML标记从\“ Content \”设置为\“ None:\”
<None Include=\"form.coffee\" />
我关闭了该项目,然后使用另一个编辑器手动编辑了该文件,以排除我所有的咖啡文件。 (我所有的coffee文件仍被编译为js文件。)     

要回复问题请先登录注册