将ASP.NET MVC Core应用程序的[部分]发布到web主机



在这种情况下,我能够通过Visual Studio 2018 FTP发布选项成功地将我的应用程序实时发布到web主机,并且它正确地连接和发布它,更改是可见的。

然而,服务器上存储了一些文件夹,其中包含几个音频文件,因此每次发布音频文件时,都会删除音频文件,然后重新发布。这个过程不仅太长,而且是多余的。由于ASP.NET Core将应用程序转换为dll文件,因此在客户端速度更快,但发布更改是一场噩梦,因为所有文件都必须删除,包括音频文件夹,然后重新上传。

csproj文件如下所示:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>full</DebugType>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<ItemGroup>
<Content Remove="ViewsSharedExplainPage.cshtml" />
</ItemGroup>
<ItemGroup>
<None Remove="PropertiesPublishProfilesCustomProfile.pubxml" />
<None Remove="PropertiesPublishProfilesCustomProfile1.pubxml" />
<None Remove="PropertiesPublishProfilesumaraftab.net - Web Deploy.pubxml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<Folder Include="PropertiesPublishProfiles" />
<Folder Include="wwwrootexplanations" />
<Folder Include="wwwrootlectures" />
</ItemGroup>
<ItemGroup>
<None Include="wwwrootslickfontsslick.svg" />
</ItemGroup>
</Project>

wwwroot\allecipations和wwwroot\description文件夹包含音频文件。有人能建议我如何让音频文件夹保持在服务器上,只需重新创建dll文件并上传它们,因为这就是更改的地方。

问候,

尝试用remove关键字替换csproj中的这两个文件夹:

<Folder Remove="wwwrootexplanations" />
<Folder Remove="wwwrootlectures" />

在发布过程中,不要删除目标文件夹中的文件。

您可以从项目中排除这些文件夹。更新.csproj文件以删除以下两行代码:

<Folder Include="wwwrootexplanations" />
<Folder Include="wwwrootlectures" />

您可以在Visual Studio中直接编辑.csproj,方法是在解决方案资源管理器中右键单击项目节点,然后进行编辑。

最新更新