我有一个简单的类,我喜欢在进行单元测试时使用。我想创建一个 NuGet 包,以便我可以轻松使用它并在我的解决方案之间传播更新。
我是否必须创建它的程序集,或者是否可以创建一个 NuGet 包,其中仅包含一个源文件,然后与其他所有文件一起编译?如果是这样,您将如何配置该软件包?
我有一个简单的类,我喜欢在进行单元测试时使用。我想创建一个 NuGet 包,以便我可以轻松使用它并在我的解决方案之间传播更新。
我是否必须创建它的程序集,或者是否可以创建一个 NuGet 包,其中仅包含一个源文件,然后与其他所有文件一起编译?如果是这样,您将如何配置该软件包?
如果你想创建一个只有源代码文件的包,这很简单。有关更多说明,请参阅此博客文章。
首先,创建您的代码文件,并将其保存为(例如)myFile.cs.pp(注意 pp(预处理器)扩展名。您可以对文件进行一些预处理,例如命名空间。添加.MySubNameSpace 的命名空间,将代码文件中的声明更改为
namespace $rootnamespace$.MySubNameSpace
将此文件添加到 nuget 包的内容部分。构建包,一切就绪。
您的 .nupec 包文件将如下所示。
<?xml version="1.0" encoding="utf-16"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MyPackageName</id>
<version>1.0.0</version>
<title>My Package Name</title>
<authors>Your Name</authors>
<owners />
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>My package description.</description>
</metadata>
<files>
<file src="content\myCodeFile.cs.pp" target="content\myCodeFile.cs.pp" />
</files>
</package>
您可以通过NuGet 包资源管理器完成所有这些操作。
编辑:正如其他答案所说,NuGet可以让您分发简单的源代码。但是,我强烈建议您采用更主流的方法,即只提供一个程序集。NuGet 可以很快地做到这一点 - 您必须经历为这个源文件创建一个单独的项目并为该程序集创建一个包的“痛苦”,但这一切都非常简单。
这有一个额外的好处,当您(几乎不可避免地)想要添加更多类型时,它不会给依赖它的项目带来任何问题。
只需使用此处引用的内容文件夹Nuspec 参考(查找“内容文件”部分)
<file src="css\mobile\*.css" target="content\css\mobile" />