2012-02-05 42 views
1

我有一個網站設置項目和一個網站包含在同一溶劑。 在安裝項目中,我添加了指向網站內容的Content files是否可以對Web設置項目的ContentFiles中的子文件夾中的文件進行過濾?

在這個網站上有一些文件夾包含動態生成的文件(即.log文件,一些圖像文件等),我不希望這些文件包含在安裝程序中。我試圖添加一個過濾器Symbols\*.png但這不起作用。我也試過了一個名爲*.png的過濾器,這樣就排除了該文件夾中的.png文件,但問題是它也排除了網站中必須存在的所有靜態.png文件。

如何添加僅排除我想要的目錄下的文件的篩選器?

在文件被刪除之後,是否可以調用PreBuildEvent中的某些內容,這會告訴VS刷新網站內容?

有沒有其他方法可以解決這個問題?

+0

相關的東西:http://stackoverflow.com/questions/1189256/how-can-i-exclude-a-folder-from-a-net-installer-for-a-website – alexsuslin 2012-02-20 14:53:32

回答

0

作爲解決方法,我創建了一個PreBuildEvent刪除所有

del /Q $(ProjectDir)..\..\MyWebSite\Symbols\*.png 

這實際上刪除文件時,我開始構建,但後來則導致錯誤出現在構建,因爲有些內容文件不存在,該設置內容認爲:不應該包含在安裝文件應該在那裏。被刪除的文件在VS中仍被引用爲網站中的內容。如果我瀏覽網站中的文件夾,我會發現刪除的文件存在於VS GUI中(儘管文件實際上被刪除了)。我必須對網站項目進行刷新,告訴VS內容已經更改,然後再次進行構建。然後它可以工作,我的設置包含我想要的。

0

你有沒有試着用記事本編輯您的.csproj文件,並添加類似:

<ItemGroup> 
    <!-- This will exclude the .png files from the Symbols folder -->  
    <ExcludeFromPackageFiles Include="$(ProjectDir)..\..\MyWebSite\Symbols\*.png" /> 
</ItemGroup> 

其中的ItemGroup就是以下行後:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 

更多信息,你可以在下面找到文章:http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx

+0

我沒有一個.csproj文件,因爲這是一個包含所有內容的網站。 – awe 2012-02-20 14:02:56

+0

Web部署項目將爲您工作而不是Web安裝項目? – alexsuslin 2012-02-20 14:13:47

+0

或在構建後事件中執行腳本 – alexsuslin 2012-02-20 14:41:51

相關問題