为什么Visual Studio 2022在为调试版本设置时在发布版本中生成我的项目?

70gysomp  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(195)

我正在尝试两柴Web项目中的组件。Web项目具有对该程序集的引用。我有程序集的代码。我已经将目标框架为.Net Standatd 2.0的程序集项目设置为Debug build,如下所示。我将生成的.dll和.pdb文件复制到了Web项目(目标.NET 5.0)的\bin\debug\net50文件夹中。在调试Web项目的过程中,我注意到在模块窗口中,Visual Studio将程序集作为Optimized和Skip加载符号加载。dll和.pdb文件具有相同的时间戳。我不确定为什么没有加载程序集的符号。
然后我使用了这个Assembly Information工具,它显示了dll作为发布和优化。所以这就解释了为什么VS会这样加载它?
我的问题是,为什么要将其构建为发布版本并进行优化?我的目标是让VS加载它,在那里我可以设置断点并单步执行汇编代码。


的数据


sxissh06

sxissh061#

csproj文件中有一个Optimize属性设置为true。把它改成假的。

2w2cym1i

2w2cym1i2#

在项目文件中,删除或注解以下行:

<Optimize>True</Optimize>

字符串
前面的例子:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <Optimize>True</Optimize>
    <DebugType>portable</DebugType>
    <DefineConstants>$(DefineConstants);DEBUG</DefineConstants>
  </PropertyGroup>


之后:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <!--<Optimize>True</Optimize>-->
    <DebugType>portable</DebugType>
    <DefineConstants>$(DefineConstants);DEBUG</DefineConstants>
  </PropertyGroup>

相关问题