2016-09-27 64 views
0

有一個神祕的問題。Visual Studio 2015在發佈中保持缺少單個文件

每次發佈我的VS項目時,都有一個遠程文件不會被新版本覆蓋。

這是我的Views/Shared文件夾中的局部視圖。它絕對包含在該項目中。

Build ActionContent(如在文件夾中的所有其他文件)

Copy to Output DirectoryDo not copy(如在文件夾中的所有其他文件)

我檢查的權限的文件,它的讀/寫,像文件夾中的所有其他文件一樣。

服務器上的文件的日期/時間戳比我的本地開發機上的文件的日期/時間戳更早。

有可能這個文件可能已經在某些時候在服務器上手動編輯過了。這會影響事情嗎?

按照這個(未解決)問題的建議...

Why won't visual studio include a file in publish output?

...我跑了建立診斷模式,一切似乎都很正常。我還搜索了遠程服務器上的所有其他文件夾,以查看該文件的新版本是否可能在別的地方結束。它沒有。

我可以通過手動上傳文件來暫時解決問題,但這個問題可能會重新出現在軌道上。另外,我不再100%確定所有其他文件都已發佈。這是諺語中的一種痛苦。

這是我的.pubxml文件...

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>FTP</WebPublishMethod> 
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
    <LastUsedPlatform>Any CPU</LastUsedPlatform> 
    <SiteUrlToLaunchAfterPublish>http://XXXXXX.com.au</SiteUrlToLaunchAfterPublish> 
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
    <ExcludeApp_Data>False</ExcludeApp_Data> 
    <publishUrl>ftp://XXX.X.XXX.XX</publishUrl> 
    <DeleteExistingFiles>False</DeleteExistingFiles> 
    <FtpPassiveMode>True</FtpPassiveMode> 
    <FtpSitePath>XXXXXX.com.au\wwwroot</FtpSitePath> 
    <UserName>xxxxxxx</UserName> 
    <_SavePWD>True</_SavePWD> 
    </PropertyGroup> 
</Project> 

這是我的.sln文件

Microsoft Visual Studio Solution File, Format Version 12.00 
# Visual Studio 14 
VisualStudioVersion = 14.0.24720.0 
MinimumVisualStudioVersion = 10.0.40219.1 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CMS", "CMS\CMS.csproj", "{0EABB8B8-2784-4BBA-B2E8-5D7B4A302182}" 
EndProject 
Global 
    GlobalSection(SolutionConfigurationPlatforms) = preSolution 
     Debug|Any CPU = Debug|Any CPU 
     Release|Any CPU = Release|Any CPU 
    EndGlobalSection 
    GlobalSection(ProjectConfigurationPlatforms) = postSolution 
     {0EABB8B8-2784-4BBA-B2E8-5D7B4A302182}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {0EABB8B8-2784-4BBA-B2E8-5D7B4A302182}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {0EABB8B8-2784-4BBA-B2E8-5D7B4A302182}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {0EABB8B8-2784-4BBA-B2E8-5D7B4A302182}.Release|Any CPU.Build.0 = Release|Any CPU 
    EndGlobalSection 
    GlobalSection(SolutionProperties) = preSolution 
     HideSolutionNode = FALSE 
    EndGlobalSection 
EndGlobal 

感謝您的時間。

回答

1

嘗試首先發布到本地文件夾,並檢查結果,修復任何問題。

還可以在Visual Studio以外的文本編輯器中檢查您的解決方案/項目文件。在項目文件中找到您的局部視圖參考,並與其他項目進行比較,也許有一些差異。如果您安裝了生產力工具,則可以在VS中直接編輯項目文件,並在解決方案資源管理器中選擇卸載項目。

該項目文件可能包含後期構建事件來操縱文件,檢查是否有任何。

發佈配置文件(* .pubxml)可能包含某些操作已發佈文件(如ExcludeFoldersFromDeployment)的元素。

由於您在服務器上手動修改了文件,因此deploy可能認爲修改後的文件比發佈的文件更新並跳過它。

設置

<DeleteExistingFiles>True</DeleteExistingFiles> 

力始終部署的所有文件。

+0

Thanks apr。 我已將.pubxml和.sln文件添加到上述問題中。 我已發佈到本地文件夾。有問題的文件發佈很好。但是,當我手動編輯發佈的文件,然後重新發布在頂部時,我的手動編輯仍然存在。也許這是標準行爲,並且只有在目標文件夾中不存在的情況下才發佈文件?如果是這樣的話,那將是非常糟糕的。 – clayRay

+0

我想你需要設置 True apr

+0

這是「在發佈之前刪除所有現有文件」。不完全是我以後的事情,但我猜它必須要做。我只需要排除客戶端可能已經添加了一些自己的文件的「內容」文件夾。 非常感謝! – clayRay

相關問題