通常,我需要發佈保存目錄樹的Web項目,即使目錄爲空,例如用於保存上載文件的目錄。 如果我使用VS2010發佈命令發佈我的應用程序,則不會在Web服務器上的遠程文件系統上創建空目錄。將空目錄發佈到VS2010 Web項目中的Web應用程序
有沒有辦法強制VS在目標目錄上創建某些文件夾,儘管是空的? 謝謝!
通常,我需要發佈保存目錄樹的Web項目,即使目錄爲空,例如用於保存上載文件的目錄。 如果我使用VS2010發佈命令發佈我的應用程序,則不會在Web服務器上的遠程文件系統上創建空目錄。將空目錄發佈到VS2010 Web項目中的Web應用程序
有沒有辦法強制VS在目標目錄上創建某些文件夾,儘管是空的? 謝謝!
不,這是不可能的恐怕我們有同樣的問題。如果您希望預編譯工具生成這些空文件夾,則需要在每個空目錄中創建一個placeholder.txt文件。如果沒有,你可以創建一個命令行應用程序,它會在你的後期構建事件中創建文件夾(但只有當你使用的是web應用程序項目而不是web站點項目時)。
希望這會有所幫助。
有一個錯誤報告給微軟,他們說他們不會修復它。 http://connect.microsoft.com/VisualStudio/feedback/details/546356/publish-deploy-does-not-deploy-empty-folders
太糟糕了。因爲它曾經在Visual Studio 2008中工作。
請注意,沒有必要實際部署虛擬文件。它只需要在構建環境中作爲項目的一部分存在。
看起來像這個答案的說明是錯誤的。將生成操作設置爲無將停止在IIS服務器上創建文件夾。 – GoClimbColorado 2013-02-26 17:49:42
我知道這個問題提到Visual Studio 2010
但我來到這裏尋找同樣的問題...
我使用Visual Studio 2012
,發現克服這種惱人的情況很好/優雅的方式。我認爲它也可以在VS 2010
中工作,並且比在空文件夾內添加虛擬空文件要好。
當你創建一個發佈配置與VS 2012
它會生成一個MyPublishProfile.pubxml
文件中Properties\PublishProfiles
文件夾(My Project\PublishProfiles
的VB)。這些是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
持有,將部署包的內容之後被調用對象的名字已經準備。這是向包中添加其他文件或文件夾的最佳時機。
代碼和文本從混合
How to execute a PowerShell script only before a web deploy Publish task in VS 2012?
內部的空餘文件夾添加一個Default.aspx文件。您可以將其保留爲空,然後在預編譯版本中創建文件夾。
對我來說這一次的工作:
編輯您發佈的Visual Studio生成,如Leniel Macaferi提到,再加入此pubxml文件: 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>
謝謝你 - 這樣一個令人沮喪的錯誤.. – Adam 2012-07-17 15:34:04
很沮喪... – Baxter 2012-12-10 18:20:07
這個工作對我來說...很奇怪的問題..還是謝謝:) – 2016-05-24 06:26:47