我有一個使用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