是否可以恢复启用 EmbedAllSources 构建的 nuget 包的源代码?
Is it possible to recover the source code of a nuget package built with EmbedAllSources enabled?
我正在从我的 csproj 文件中的 new-format-csproj project. I included the EmbedAllSources 属性(见下文)构建一个 nuget 包:
...
<PropertyGroup>
<!-- Omitted for brevity -->
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IncludeSymbols>true</IncludeSymbols>
<EmbedAllSources>true</EmbedAllSources>
<!-- Omitted for brevity -->
</PropertyGroup>
...
我的 nuget 的消费者,retrieve/reconstruct 是否可能因为那个 属性 而成为我的 nuget 的源代码?如果可以,怎么做?
是的。
运行 这与 dotnet 核心 3.1.201 和一个最小的测试项目,我最终在输出文件夹中得到一个 .nupkg
和一个 .symbols.nupkg
。这些文件只是 zip,所以可以用任何你喜欢的方式解压它们。 .symbols.nupkg
文件包含 /libs/{framework}/
下的 .pdb
文件。我什至没有尝试做任何聪明的事情……只是把它扔进了记事本++,你可以清楚地看到所有相关的源代码都在那里。将其提取到单独的 .cs
文件中会花费更多的精力,但不会太多。
我正在从我的 csproj 文件中的 new-format-csproj project. I included the EmbedAllSources 属性(见下文)构建一个 nuget 包:
...
<PropertyGroup>
<!-- Omitted for brevity -->
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IncludeSymbols>true</IncludeSymbols>
<EmbedAllSources>true</EmbedAllSources>
<!-- Omitted for brevity -->
</PropertyGroup>
...
我的 nuget 的消费者,retrieve/reconstruct 是否可能因为那个 属性 而成为我的 nuget 的源代码?如果可以,怎么做?
是的。
运行 这与 dotnet 核心 3.1.201 和一个最小的测试项目,我最终在输出文件夹中得到一个 .nupkg
和一个 .symbols.nupkg
。这些文件只是 zip,所以可以用任何你喜欢的方式解压它们。 .symbols.nupkg
文件包含 /libs/{framework}/
下的 .pdb
文件。我什至没有尝试做任何聪明的事情……只是把它扔进了记事本++,你可以清楚地看到所有相关的源代码都在那里。将其提取到单独的 .cs
文件中会花费更多的精力,但不会太多。