簡體   English   中英

將空目錄發布到VS2010 Web項目中的Web應用程序

[英]publish empty directories to a web application in VS2010 web project

通常我需要發布一個保留目錄樹的Web項目,即使目錄是空的,例如,用於保存上載文件的目錄。 如果我使用VS2010發布命令發布我的應用程序,則不會在Web服務器上的遠程文件系統上創建空目錄。

有沒有辦法強制VS在目標目錄上創建某些文件夾,盡管是空的? 謝謝!

不,這是不可能的,我擔心我們遇到了同樣的問題。 如果希望預編譯工具生成這些空文件夾,則需要在每個空目錄中創建一個placeholder.txt文件。 如果失敗,您可以創建一個命令行應用程序,它將在您的后期構建事件中創建文件夾(但僅當您使用的是Web應用程序項目而不是Web站點項目時)。

希望這可以幫助。

我知道這個問題提到Visual Studio 2010但我到這里尋找同樣的問題......

我正在使用Visual Studio 2012並找到一種很好/優雅的方法來克服這種煩人的情況。 我認為它也適用於VS 2010並且比在空文件夾中添加虛擬空文件更好。

使用VS 2012創建發布配置文件時,它將在Properties\\PublishProfiles文件夾( My Project\\PublishProfiles for VB)中生成MyPublishProfile.pubxml文件。 這些是MSBuild文件,可以編輯它們來自定義發布過程。 在我們的例子中,我們可以在發布實際發生之前將目標注入發布過程,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <AfterAddIisSettingAndFileContentsToSourceManifest>CreateEmptyFolders
    </AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>
  <Target Name="CreateEmptyFolders">
    <Message Text="Adding empty folder to hold Files" />
    <MakeDir Directories="$(_MSDeployDirPath_FullPath)\Files\MyEmptyFolder"/>
  </Target>
</Project>

屬性AfterAddIisSettingAndFileContentsToSourceManifest保存在准備部署包的內容之后將調用的目標的名稱。 這是將更多文件或文件夾添加到包中的最佳時機。


代碼和文字混合來自:

如何在VS 2012中的Web部署發布任務之前執行PowerShell腳本?

Web部署:自定義部署包

微軟有一個關於此的錯誤報告,他們說他們不會修復它。 http://connect.microsoft.com/VisualStudio/feedback/details/546356/publish-deploy-does-not-deploy-empty-folders

太糟糕了。 因為它曾經在Visual Studio 2008中工作。

請注意,沒有必要實際部署虛擬文件。 它只需要在構建環境中作為項目的一部分存在。

這個對我有用:

編輯visual studio生成的發布pubxml文件,就像Leniel Macaferi提到的那樣,然后添加:Visual Studio已經生成了像

<publishUrl>f:\publish_web</publishUrl>

在里面

<PropertyGroup>    

部分,所以我像這樣使用它:添加到部分:

 <PipelineDependsOn>
      CustomBeforePublish;
      $(PipelineDependsOn);
    </PipelineDependsOn>  

並補充說:

<Target Name="CustomBeforePublish">
    <Message Text="CustomBeforePublish task:"/>
    <MakeDir Directories="$(publishUrl)\MyFolder\MyFolder2"/>
  </Target>

在空文件夾內添加Default.aspx文件。 您可以將其留空,然后它將在預編譯版本中創建該文件夾。

暫無
暫無

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

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