簡體   English   中英

VisualStudio 2012和MVC4:如何將單個文件/文件夾部署到文件系統?

[英]VisualStudio 2012 & MVC4: How to deploy individual files/folders to filesystem?

我正在使用VisualStudio 2012 Professional中的ASP.NET MVC4構建一個相當復雜的Web應用程序,用於數據可視化。 由於技術原因(涉及實時服務器端消息傳遞等),我必須通過文件系統將Web應用程序部署到我們的生產服務器,因此在大多數情況下我不能使用開發服務器。

隨着項目的發展和包含越來越多的腳本,部署幾乎需要一分鍾才能完成,即使在1000BASE-T以太網上也是如此,這非常煩人。 在大多數情況下,僅僅“更新”項目中的特定文件或文件夾是絕對足夠的,因為大多數文件通常永遠不會更改(例如JQuery和其他框架)。

根據這篇文章 ,應該可以發布自Visual Studio 2012.2以來的單個文件,但它對我不起作用,上下文菜單中描述的選項不存在。

這是我的VS的確切版本:

Microsoft Visual Studio Professional 2012
Version 11.0.60315.01 Update 2
Microsoft .NET Framework
Version 4.5.50709

以前有人遇到過這個問題嗎? 解決這個問題真是太棒了。

出於某些原因,您提到的博客文章中描述的此功能僅適用於發布方法“Web Deploy”。 我在當前的MVC應用程序中使用此功能,我注意到如果切換到“文件系統”,上下文菜單中描述的選項將消失。

關於你給出的鏈接的評論( http://www.west-wind.com/weblog/posts/2013/May/10/Publish-Individual-Files-to-your-Server-in-Visual-Studio- 20122#127707 )請注意,在選項出現之前,您必須已配置並保存了發布設置。

我可以驗證我從未發布的項目沒有選擇發布單個文件。 我發布的一個確實有這個選項。

我們使用VS2010開發了幾個Web項目(9.0)。 我們使用TeamCity進行生產部署,如下所示:

  1. 使用Debug構建正常開發

  2. 發布版本配置為使用具有以下屬性的MSDeploy(可以在csproj文件或TeamCity環境變量中設置這些屬性):

    • DeployOnBuild :true
    • DeployIisAppPath :sitename.in.iis
    • MSDeployPublishMethod :MSDeploy
    • CreatePackageOnPublish :true
    • PackageLocation :AbsoluteOrRelativeLocation \\ Package.zip
    • SkipExtraFilesOnServer :true(可選)
    • IncludeSetAclProviderOnDestination :false(可選,如果為true,則在部署時可能需要很長時間)
    • PublishDatabases :false(可選)
    • ExcludeGeneratedDebugSymbol :true(可選)
    • * ExcludeApp_Data *:true(可選)
  3. TeamCity使用FTP自動將構建的包上傳到我們的生產服務器,但您也可以將其復制到某處。

  4. 在部署位置,您可以調用與包一起輸出的cmd。 您還可以傳遞一些標志,例如:

    Package.Deploy.cmd /y -enableRule:DoNotDeleteRule

最后一步非常有效,因為它只更新已更改的文件。

我不確定在您的情況下,您是否需要在更新之前將整個軟件包放在生產服務器上,或者您是否可以調整Package.Deploy.cmd以從構建位置執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM