繁体   English   中英

NuGet: package 带源码可参考库

[英]NuGet: package with source code that can be referenced as library

是否有可能创建一个 NuGet package 包含可以作为库引用的源代码? 当我使用.nuspec 打包时,created.nupkg 包含源代码但无法引用。 我已经尝试按照 SO 上的一些建议在 the.nuspec 中添加一个库节点,但生成的 .nuspec 与标准不匹配,因此无法创建。 使用.csproj 打包.nupkg 时只包含.dll。 它可以被引用但不能被调试,因为它不包含任何源代码。 我怎样才能做到这两点? 包含源代码的可引用库。 提前感谢您的宝贵时间。

这是我用于 package 来自多个目录的 .nuspec 文件,在其他项目中用作库:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Your.Package</id>
    <version>1.0.14</version>
    <authors>me</authors>
    <owners>me</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Class library.</description>
    <releaseNotes>Initial release.</releaseNotes>
    <copyright>Copyright 2017</copyright>
    <tags>some tags</tags>
  </metadata>
  <files>
    <file src="*.cs" target="content/App_Packages/<YourPackage>.Sources" />
    <file src="Configuration/*.cs" target="content/App_Packages/<YourPackage>.Sources" />
  </files>
</package>

只需更改“文件”标签以引用您要包含的文件。

当您准备好创建 .nupkg 文件时,cd 到包含您的 .nuspec 文件的目录并运行:nuget pack.nuspec

现在有csproj标签EmbedAllSources 这样做是将您的源代码嵌入到您的 NuGet package 中。

用法是这样的:

<EmbedAllSources>True</EmbedAllSources>

嵌入源代码将允许人们,例如,导航到您的方法定义并按照您编写的方式查看代码,而不是根本无法导航到定义或依赖反编译代码.

将调试符号添加到上面将允许您的用户在您的代码中放置断点并在调试期间逐步执行它。

如果那是您想要的,请将其添加到您的csproj

<DebugType>Embedded</DebugType>
<EmbedAllSources>True</EmbedAllSources>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM