2011-09-20 54 views
0

我使用這個命令來構建和部署我的網站:使用MSBuild/MSDeploy進行部署時,如何跳過某些文件(或者我應該如何?)?

MSBuild myprj.sln 
    /P:Configuration=Debug 
    /P:DeployOnBuild=True 
    /P:MsDeployServiceUrl=http://myserver/MsDeployAgentService 
    /P:MSDeployPublishMethod=RemoteAgent 
    /P:DeployTarget=MSDeployPublish 
    /P:UserName=foo 
    /P:Password=bar 
    /P:DeployIisAppPath="Default Web Site\MyApp" 

它的偉大工程,但我覺得我要排除某些數據文件,比方說,~/App_Data/data.xml。我不想在我的項目中使用data.xml,因爲它是由應用程序生成的或由用戶設置的(例如,通過重命名和配置data.xml.origdata.xml)。

那該怎麼辦?我可以簡單地將它從MSDeploy中排除,還是應該以另一種方式處理?

+0

您使用的是網站還是Web應用程序項目? –

+0

@JohnSaunders申請 –

回答

0

發佈的文件是項目的構建輸出;這包括您的DLL和Build Action設置爲Content的任何文件。如果將Build Action設置爲None(單擊VS中的文件,查看它的屬性),它應該被自動排除。

如果您想完全排除App_Data文件夾的內容,那麼項目屬性中的Package/Publish Web選項卡上會有一個選項。

+0

感謝您的提示!不幸的是,這兩個選項實際上**從目標中刪除**文件,因爲它們未包含在部署中。 –

+0

發佈對話框中有另一個選項,標記爲「在目標處保留額外的文件」,這將停止刪除已存在的文件。 – Jimmy

+0

該選項對我而言不存在。它看起來像我應該切換到常規msdeploy(與它的配置文件),而不是傳入我的選項... –

0

如果我找到了你,你應該在你的命令行中添加/ p:SkipExtraFilesOnServer = True。 這會在目標上留下所有額外的文件,這可能是某些情況下的缺陷

如果您只想跳過一些文件夾(可能需要,如果您不想在服務器上浪費太多時間,保留一些文件夾完好無損) - 您可以使用此問題的解決方案: MSDeploy skip rules when using MSBuild PublishProfile with Visual Studio 2012

相關問題