我正在使用Visual Studio发布功能(发布到文件夹或发布到IIS)发布一个.NET Framework站点.

我注意到,与发布版本相比,有些文件不是由Publish生成/复制的.例如,不会生成内容/*.css文件,这会 destruct 已发布网站的样式.我的一些.cs类文件也丢失了,但不知何故没有造成任何问题.

发布实际上是做什么的?除了复制Build生成的文件之外,它还能做什么吗?


编辑:这是我对发布到文件夹的设置

<Project>
  <PropertyGroup>
    <DeleteExistingFiles>false</DeleteExistingFiles>
    <ExcludeApp_Data>false</ExcludeApp_Data>
    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <PublishProvider>FileSystem</PublishProvider>
    <PublishUrl>bin\app.publish\</PublishUrl>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <_TargetId>Folder</_TargetId>
  </PropertyGroup>
</Project>

注意:我使用的是Visual Studio 2022

可能是相关的:The difference between build and publish in VS?次提及发布会生成相同的文件.

推荐答案

事实证明,发布时,excluded from project的文件不会复制到输出文件夹(这是有意义的).在原始文件夹中,那些被排除的文件仍然可以包含在<scripts><include>中(或者在我的情况下是在.config文件中).但是,在已发布的文件夹中再也找不到它们了,这造成了潜在的危害.

这告诉我们在使用Exclude from project功能时要小心...

相关:What exactly does 'Include In Project' and 'Exclude From Project' mean in Visual Studio?

Csharp相关问答推荐

Serilog SQL服务器接收器使用UTC作为时间戳

图形.DrawString奇怪异常的字距调整

ASP.NET Core:如何在IPageFilter中注入ApplicationDbContext

错误401未授权ASP.NET Core.使用JWT创建身份验证/授权

Unity 2D自顶向下弓旋转

dotnet集合中内部数组的局部变量副本的用途是什么?'

.NET 8 Web-API返回空列表

如何在C#中从正则表达式中匹配一些数字但排除一些常量(也是数字)

在路由中使用枚举

从ASP.NET Core中的枚举字段填充 Select 选项时,将默认的第一个选项添加为 Select 元素

使用Dapper映射联接查询对象数据到使用SplitOn;

如何从Entity Framework Core中填充ListIInterface

Blazor Server/.NET 8/在初始加载时调用异步代码是否冻结屏幕,直到第一次异步调用完成?

C# Winforms:从对象树到TreeView的递归转换重复条目

序列化过程中的死循环

用MongoDB c#驱动程序删除和返回嵌套数组中的文档

ASP.NET核心8:app.UseStaticFiles()管道执行顺序

Xamarin中出错.表单:应用程序的分部声明不能指定不同的基类

客户端/服务器RPC如何处理全局变量?

我想我必须手动使用res1(字符串形式的PowerShell哈希表)