Visual Studio 发布生成的文件比生成少 (.NET Framework)

Visual Studio Publish generates less files than Build (.NET Framework)

提问人:SyndRain 提问时间:10/12/2023 最后编辑:SyndRain 更新时间:10/17/2023 访问量:164

问:

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

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

Publish 实际上做了什么?它是否比复制 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

可能与此相关:在 VS 中构建和发布之间的区别? 提到发布会生成相同的文件。

C# asp.net Visual-Studio 生成 发布

评论

0赞 Narish 10/12/2023
您是否查看了实际发布的设置?
0赞 SyndRain 10/12/2023
是的,没有太多。我正在使用相同的构建配置文件。

答:

1赞 SyndRain 10/12/2023 #1

事实证明,在发布时,从项目中排除的文件不会复制到输出文件夹(这是有道理的)。在原始文件夹中,这些排除的文件仍然可以包含在 or 中(或者在我的情况下包含在 .config 文件中)。但是,在已发布的文件夹中无法再找到它们,从而造成潜在的危害。<scripts><include>

这告诉我们在使用“从项目中排除”功能时要小心......

相关:Visual Studio 中的“包含在项目中”和“从项目中排除”究竟是什么意思?