我正在使用以下发布配置文件从Visual Studio中发布控制台应用程序:
我的目标是不在发布输出文件夹中生成任何.pdb(调试符号)文件。
这并没有完全按照预期工作。
控制台应用程序项目的.pdb文件未生成——如预期,但引用的业务逻辑项目的调试符号某种原因却被生成了。这是一个错误吗?
我可以通过向业务逻辑库的项目文件添加条件语句来迂回解决此问题,但我想尽可能避免这样做,因为我认为发布应用程序所需的所有相关信息都应存在于发布配置文件中。
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Configuration>Release</Configuration>
<Platform>x64</Platform>
<TargetFramework>netcoreapp5.0</TargetFramework>
<PublishDir>bin\Release\netcoreapp5.0\publish\</PublishDir>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<SelfContained>False</SelfContained>
<PublishSingleFile>True</PublishSingleFile>
<PublishReadyToRun>True</PublishReadyToRun>
<IncludeNativeLibrariesForSelfExtract>True</IncludeNativeLibrariesForSelfExtract>
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>
</Project>
我的目标是不在发布输出文件夹中生成任何.pdb(调试符号)文件。
这并没有完全按照预期工作。
控制台应用程序项目的.pdb文件未生成——如预期,但引用的业务逻辑项目的调试符号某种原因却被生成了。这是一个错误吗?
我可以通过向业务逻辑库的项目文件添加条件语句来迂回解决此问题,但我想尽可能避免这样做,因为我认为发布应用程序所需的所有相关信息都应存在于发布配置文件中。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>
*.pdb
或-.pdb
表示在主项目中排除此类后缀文件,而.pdb
表示包括这些文件。有点灵活!没有明显的官方文档来解释这一点。您可以使用我的方法进行测试,并给我们任何反馈。 - Mr Qian*.pdb
。 - Mr Qian<ExcludeFilesFromDeployment>bin\**\*.pdb</ExcludeFilesFromDeployment>
,因为这适用于所有已引用的项目,除了正在发布的项目。 - Dan Atkinson