Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# nuget包dll或源文件_C#_Nuget_.net Core_Nuget Spec - Fatal编程技术网

C# nuget包dll或源文件

C# nuget包dll或源文件,c#,nuget,.net-core,nuget-spec,C#,Nuget,.net Core,Nuget Spec,我是nuget package publishing的新手 正在进行的项目是一个dotnetcore应用程序,它是一个开源项目 在为分发文件指定target时,我理解两个选项content和lib 因为到目前为止,我还无法将dll连接到mac上的.net核心web应用程序,而且研究表明,可以选择将源代码用于安装/部署 其次,桌面上可能有用户可以使用提供的程序集dll开发他们的项目 问题是, 用户可以选择要获取的内容吗?dll还是源文件 我必须为netstandard、netcore、net和ua

我是nuget package publishing的新手

正在进行的项目是一个dotnetcore应用程序,它是一个开源项目

在为分发文件指定
target
时,我理解两个选项
content
lib

因为到目前为止,我还无法将dll连接到mac上的.net核心web应用程序,而且研究表明,可以选择将源代码用于安装/部署

其次,桌面上可能有用户可以使用提供的程序集dll开发他们的项目

问题是,

  • 用户可以选择要获取的内容吗?dll还是源文件

  • 我必须为netstandard、netcore、net和uap分别创建一个单独的程序集吗

  • 我想为上述所有平台提供程序集(最好)或源代码。二进制本身有一些功能,不调用任何特定于平台的代码,让我们假设它是嵌入在DLL中的HelloWorld类

    来自


    您可以制作两个单独的NuGet软件包:

  • 包含库的文件。把它命名为“Foo”
  • 包含源代码的代码。将其命名为“Foo.Sources”
  • 然后,包的用户可以通过选择他们想要的包来进行选择


    另一个选项是将您的NuGet包多目标定位到桌面和netstandard/netcoreapp。您将编译程序集两次,然后在单个NuGet包中包含单独的程序集。网上有一些很好的文章描述了这一点。这里有一个:。VS 2017中新的.csproj格式允许您指定
    net45;netstandard1.6您还不能做什么?请详细描述您的问题。对于.net核心应用程序,您无法链接到dll,因此我将复制程序集的源代码以供使用,但是,对于桌面上的程序员,我希望将其作为dll分发,所以,你们能把源代码和库都分发到一个金块包中,开发人员可以选择挑选什么吗?“各种”本身就是一个疯狂的想法。许多著名的库都是通过NuGet targets.NET标准1.3发布的。有些人的目标是1.0,但确实很少。再次,向他人学习。“我无法将dll连接到Mac上的.NET核心web应用程序”是什么意思?如果你可以链接到一个NuGet软件包,那么请将你的dll打包到一个NuGet软件包中。好的,我用一个屏幕截图编辑了我的问题,那里有很多平台,我需要创建一个单独的目标并为每个目标提供单独的程序集吗
    netstandard
    netcoreapp
    net
    uap
    win
    wpa
    wp
    mono
    等。?(仅限最新版本),我对.net不太了解,所以如果这个问题没有任何意义,请启发。@LexLi我必须为netstandard、netcore、net和uap分别创建一个单独的程序集吗?感谢您对多目标的启发,我还有一个问题,因为我是一个相对较新的人,实际上我正在从另一种语言为.net移植一个库。所以问题是,我是否应该为另外一个目标添加和分发程序集?例如,(NETStandard-PCLs的演变)一节下的这一页讨论了通用Windows平台、.NET平台标准、Windows、Windows phone、Windows phone silverlight、mono等。我是否必须为每个平台分发程序集?我已经编辑并添加了我问题中的截图,我被所有这些多个平台甩了,我必须为每个平台创建一个程序集吗?.NET标准是您要在多个平台上运行时应该针对的框架:.NET Core、UWP、Windows Phone、Mono等。如果您可以针对足够低的.NET标准版本,你几乎可以在任何地方运行你的库。例如,Newtonsoft.Json的目标是
    netstandard1.0
    ,因此它实际上可以在所有平台上运行。但是,您使用的.NET标准版本越低,可用的API就越少。如果您需要一个仅在.NET桌面框架中或仅在.NET核心上的API,则此时您必须启动多目标。感谢您的解释。