c# – NuGet发布的github托管项目的目录结构

c# – NuGet发布的github托管项目的目录结构,第1张

概述对于也可以通过NuGet使用的 github托管的开源C#项目,应该如何组织源代码?特别: > .nuspec文件应该在github仓库中? > .nuspec文件应该与.csproj文件在同一个文件夹中? > NuGet包树怎么样(/ lib,/ content stuff),因为是生成的,应该是在git吗? 我的想法是,NuGet部分与github主机是分开的,就像在项目源中一样,但是.nus 对于也可以通过NuGet使用的 github托管的开源C#项目,应该如何组织源代码?特别:

> .nuspec文件应该在github仓库中?
> .nuspec文件应该与.csproj文件在同一个文件夹中?
> NuGet包树怎么样(/ lib,/ content stuff),因为是生成的,应该是在git吗?

我的想法是,NuGet部分与github主机是分开的,就像在项目源中一样,但是.nuspec不是,因为NuGet的发布不是一个开放源代码的 *** 作.没有人希望每一个叉子都可以建立和发布一个新的NuGet软件包,这样开源的Foo软件​​包就可以在“Rick’s Foo”与“John’s Foo”和“Alice’s Foo”

但另一方面,我希望github源代码库作为项目的一站式存储库,如果我打开我的其他笔记本电脑并从那里登记,我应该能够构建/打包/推送w / o重新创建整个NuGet基础架构从零开始(即只输入我的API密钥,没有更多).

这两个要求是相互矛盾的,我想念一些明显的东西吗?

解决方法 我会做以下事情:

>提交.csproj文件旁边的.nuspec文件
>添加一个nuget.config文件,其中moves the packages folder为一级.
>在解决方案中启用package restore,不要提交NuGet软件包存储库的内容
>创建一个msbuild文件(或任何你喜欢的构建车辆),它具有:

>构建源代码并创建nuget包的“构建”目标
>一个“发布”目标,将NuGet软件包推送到nuget.org,并将您的API密钥作为参数.

我亲自维护.nuspec文件中的nuget包的版本号,并在我执行“release”时手动更新它.这样我可以标记我推到NuGet Feed的确切版本.

使用此设置,Visual Studio中的构建不会生成NuGet包,但存储库中都可以使用所有工具.

文件夹结构如下所示:

.\Docs\ ==> not in source repo   .\Packages\ ==> not under source control   .\Src\ ==> git repo here   .\Src\MySolution.sln   .\Src\.gitignore   .\Src\MuRules.ruleset   .\Src\build.proj ==> msbuild file to build everything.   .\Src\MyProject\MyProject.csproj   .\Src\MyProject\MyProject.nuspec   .\Src\MyProject\nuget.config   .\Build\ ==> not under source control   .\Build\DeBUG\   .\Build\Release\   .\Build\Publish\

请注意包还原功能中的这个错误,它将忽略您配置的包位置. http://nuget.codeplex.com/workitem/1990 ==>这是在Nuget 2.7中修复的

总结

以上是内存溢出为你收集整理的c# – NuGet发布的github托管项目的目录结构全部内容,希望文章能够帮你解决c# – NuGet发布的github托管项目的目录结构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存