NuGet包含一个类作为源代码

时间:2012-09-21 12:21:19

标签: c# nuget nuget-package

我有一个简单的课程,我喜欢在进行单元测试时使用。我想创建一个NuGet包,这样我就可以轻松地使用它并在我的解决方案之间分配更新。

我是否必须创建它的程序集,或者是否可以创建一个仅包含源文件的NuGet包,然后将其与其他所有文件一起编译?如果是这样,您将如何配置该包?

3 个答案:

答案 0 :(得分:6)

如果您想创建一个只包含源代码文件的软件包,那么这样做很简单。有关详细说明,请参阅this blog post.

首先,创建您的代码文件,并将其保存为(例如)myFile.cs.pp(请注意pp(预处理器)扩展名。 您可以对文件执行一些预处理,例如命名空间。要添加.MySubNameSpace的命名空间,请将代码文件中的声明更改为 namespace $rootnamespace$.MySubNameSpace 将此文件添加到nuget包的content部分。 构建包,你已经完成了设置。

您的.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 Package Explorer完成所有这些操作。

答案 1 :(得分:1)

编辑:正如其他答案所说,NuGet 可以允许您分发简单的源代码。但是,我强烈建议您采用更主流的方法来提供装配。 NuGet很快就会这么做 - 你必须经历为这个源文件创建一个单独项目的“痛苦”,并为该程序集创建一个包,但这一切都非常简单。

这有额外的好处,当你(几乎不可避免地)想要添加更多类型时,它不会给项目带来任何问题,具体取决于它。

答案 2 :(得分:0)

只需使用此处引用的内容文件夹Nuspec Reference(查找“内容文件”部分)

<file src="css\mobile\*.css" target="content\css\mobile" />