2016-09-27 70 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

相关问题