C# 使用生成后操作创建nuget包
我有一个定制的命令行工具,它执行一些代码生成操作。基本上,它将一个程序集作为输入,并通过反射搜索特定的自定义属性,用于触发外部(JavaScript)文件的生成 一切工作(几乎)正常,但工具的分发和执行有些混乱。我想将它打包为一个Nuget包(托管在一个私有存储库中),它基本上包含工具和一个应该触发工具执行的构建目标 我应该如何包装该工具?我读到了有关特殊的NugetC# 使用生成后操作创建nuget包,c#,msbuild,nuget,C#,Msbuild,Nuget,我有一个定制的命令行工具,它执行一些代码生成操作。基本上,它将一个程序集作为输入,并通过反射搜索特定的自定义属性,用于触发外部(JavaScript)文件的生成 一切工作(几乎)正常,但工具的分发和执行有些混乱。我想将它打包为一个Nuget包(托管在一个私有存储库中),它基本上包含工具和一个应该触发工具执行的构建目标 我应该如何包装该工具?我读到了有关特殊的Nuget工具、内容、和构建文件夹的信息,但我不知道放在哪里,以及如何设置自定义目标 我不知道这个问题是否“过于宽泛”,但即使我非常准确地知
工具
、内容
、和构建
文件夹的信息,但我不知道放在哪里,以及如何设置自定义目标
我不知道这个问题是否“过于宽泛”,但即使我非常准确地知道我需要什么,我也有一种空白页综合症。在生成后操作中指定
$(SolutionDir).nuget\nuget.exe pack$(ProjectPath)-includeReferencedProject
。
还可以指定nuspec文件。如本文所述。
例如:
SDK
$version$
$title$
$author$
$author$
假的
$description$
首次发布
版权所有2016
SDK
我会将该工具放入NuGet包中的build目录,然后在同一个build目录中拥有一个自定义的MSBuild.targets文件。然后,将以这种方式写入此MSBuild.targets文件,以便在生成过程中的某个时候调用它
\build
\MyPackage.targets
然后,生成目标文件将进入生成过程:
<PropertyGroup>
<BuildDependsOn>
$(BuildDependsOn);
MyCustomTarget
</BuildDependsOn>
</PropertyGroup>
<Target Name=“MyCustomTarget“>
<!-- Execute tool -->
</Target>
$(BuildDependsOn);
MyCustomTarget
上面的内容应该在构建过程中作为最后一项运行MyCustomTarget。谢谢,但这不是我想要的。我有一个外部工具,我想用Nuget打包。生成的包应该为安装到其中的项目注册生成后操作(或类似操作)。该操作将触发该工具,因为它来自命令行。谢谢!那么你说存储一个exe的“正确”位置应该是在nuget包的build文件夹中,这个exe应该由一个build事件触发?对吗?是的,我会将.exe存储在MSBuild目标文件旁边的生成目录中。
<PropertyGroup>
<BuildDependsOn>
$(BuildDependsOn);
MyCustomTarget
</BuildDependsOn>
</PropertyGroup>
<Target Name=“MyCustomTarget“>
<!-- Execute tool -->
</Target>