c# - 使用构建后操作创建 nuget 包

标签 c# msbuild nuget

我有一个定制的命令行工具,它执行一些代码生成操作。基本上,它采用一个程序集作为输入,并通过反射搜索某些自定义属性,用于触发外部 (JavaScript) 文件的生成。

一切工作(几乎)正常,但该工具的分发和执行有点困惑。我想将其打包为 Nuget 包(托管在私有(private)存储库中),它本质上包含该工具和一个应该触发该工具执行的构建目标。

我应该如何打包该工具?我读到了特殊的 Nuget toolcontentbuild 文件夹,但我不知道在哪里放置什么以及如何设置自定义目标。

我不知道这个问题是否“太宽泛”,但即使我非常清楚我需要什么,我还是处于一种空白页综合症中。

最佳答案

我会将该工具放入 NuGet 包内的构建目录中,然后在同一构建目录中创建一个自定义 MSBuild .targets 文件。然后将以这种方式编写此 MSBuild .targets 文件,以便在构建过程中的某个时刻调用它。

\build
    \MyPackage.targets

那么你的构建目标文件将是 insert itself进入构建过程:

<PropertyGroup>
    <BuildDependsOn>
        $(BuildDependsOn);
        MyCustomTarget
    </BuildDependsOn>
</PropertyGroup>

<Target Name=“MyCustomTarget“>
    <!-- Execute tool -->    
</Target>

以上内容应将 MyCustomTarget 作为构建过程中的最后一项运行。

关于c# - 使用构建后操作创建 nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37961285/

相关文章:

c# - 是否有必要使用 log4net 为 ASP.NET MVC 实现异步日志记录?

c# - 啊!为什么 System.Web.Mvc.HandleErrorInfo 会传递到我的 View ?

c# - NuGet 包管理器 : 'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'

c# - "The type does not include any accessible constructors"- 具有无参数构造函数

c# - 如何递归迭代实体的属性

c++ - 我需要在 TeamCity 服务器或 Team Foundation Build Service 上为 C++ 项目/VS 2013 安装什么?

msbuild - 数据库 msbuild 发布无法从命令行运行

msbuild - 如何在使用 MSBUILD 复制时排除某些文件夹

nuget - 恢复包时 dotnet build 命令失败

nuget - 如何在最新的.NET Core工具中实现版本自动递增?