我有一个使用msbuild部署的网站项目。在该项目中,有一些构建所需的文件和文件夹(例如web.config部件替换文件),但我不想将其部署到目标站点。使用msbuild从网站部署中排除文件
我能想到的最好的是一个后期构建目标,删除这些文件,但我想知道是否有办法让这些文件不复制到输出文件夹。
在性能资源管理器中的文件我有一个使用msbuild部署的网站项目。在该项目中,有一些构建所需的文件和文件夹(例如web.config部件替换文件),但我不想将其部署到目标站点。使用msbuild从网站部署中排除文件
我能想到的最好的是一个后期构建目标,删除这些文件,但我想知道是否有办法让这些文件不复制到输出文件夹。
在性能资源管理器中的文件改变选择“复制到输出目录‘不复制’
可以使用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>
不知怎的编辑器不显示代码亲佩尔利。 当你配置Package/Publish网页时,上述内容会在proj文件中生成。你可以添加你自己的目标来完成它。
例如,如果要排除脚本\ 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>
这只是一个简单的例子来编写自己的目标。
希望这有助于
感谢您的提示,我会尽快尝试。要回答您的(现在已编辑过的)问题,您可以在SO中正确格式化XML,您只需将其分布在多行中即可。 – 2011-06-16 06:57:29
@Paolo感谢格式化提示。当我尝试跨多行分发时,格式化没有通过我按回车后。我错过了什么?我目前也正在完成一项任务,用于一次性为不同环境(测试/阶段/生产)生成配置文件并创建部署包。 – DotNetInfo 2011-06-16 14:17:05
喜检查this blog post出它救了我的一天,
我是想排除的JavaScript的非精缩版,并且只使用缩小的版本发布的时候(我删除大的JavaScript和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>
发布的站点将不包括以下内容:
您可以选择文件,并设置自己的“生成行动“改为”ExcludeFromPackageFiles“。这样Visual Studio将编辑csproj xml,你不需要。
这是一个网站项目,而不是一个Web应用程序。我需要一种方法来从msbuild文件中做到这一点。 – 2011-06-15 13:58:51