我正在使用 Visual Studio 发布功能(到文件夹或到 IIS)发布一个 .NET Framework 站点。
我注意到与发布版本相比,
Publish
没有生成/复制一些文件。例如,不会生成 Content/*.css 文件,这会破坏已发布网站的样式。一些 my.cs 类文件也丢失了,但不知何故这并没有引起任何问题。
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 中构建和发布之间的区别?提到发布会生成相同的文件。
事实证明,发布时,“从项目中排除”的文件将不会被复制到输出文件夹(这是有道理的)。如果这些文件包含在 <scripts>
或
<include>
的某个位置(在我的例子中是在 .config 文件中),则在已发布的文件夹中将无法再找到它们,并且代码可能会损坏。这告诉我们在使用从项目中排除功能时要小心...