Msbuild 创建包含.NET Core自定义生成步骤的nuget包

Msbuild 创建包含.NET Core自定义生成步骤的nuget包,msbuild,nuget,.net-core,visual-studio-2017,Msbuild,Nuget,.net Core,Visual Studio 2017,是否可以创建包含自定义构建步骤(分析生成的程序集并自动生成一些元数据)的nuget包?目标环境应该是新的.csproj格式的.NET Core(当前使用Visual Studio 2017 RC)。最好的情况是,这只添加一个msbuild步骤,而不依赖于项目生成的程序集 如果可以看到,使用完整的.NET应该是可行的,但是msbuild的文档和新的.NET Core的.csproj目前有点稀疏。Nuget可能会在安装期间执行“init.ps1”powershell脚本,如果在Nuget包中找到它的

是否可以创建包含自定义构建步骤(分析生成的程序集并自动生成一些元数据)的nuget包?目标环境应该是新的.csproj格式的.NET Core(当前使用Visual Studio 2017 RC)。最好的情况是,这只添加一个msbuild步骤,而不依赖于项目生成的程序集

如果可以看到,使用完整的.NET应该是可行的,但是msbuild的文档和新的.NET Core的.csproj目前有点稀疏。

Nuget可能会在安装期间执行“init.ps1”powershell脚本,如果在Nuget包中找到它的话。但请注意,该脚本支持在Nuget 3.x中进行了修改:

在Nuget 3.xx中,Powershell脚本支持被修改为不再执行安装和卸载脚本(install.ps1、uninstall.ps1),但仍会执行初始化脚本

此外,在Visual Studio之外的命令行或其他操作系统上运行NuGet无法执行这些Powershell脚本,因为它们依赖于Visual Studio自动化。Powershell在NuGet中提供了一个垫片,以允许缺少的功能在VisualStudio内部运行 Powershell脚本支持已修改为不再执行安装和卸载脚本,但仍会执行初始化脚本


您可以在“Powershell安装和卸载脚本”中找到更多信息。

您可以将MSBuild目标添加到“build”文件夹中的NuGet包中。目标或道具文件名必须与包ID匹配。通过“PackageReference”或packages.config安装时,NuGet将自动将目标/道具文件导入csproj,因此这些文件必须作为有效的MSBuild代码写入

i、 e.如果您的包名为“MyClassLibrary”,则您可以具有以下布局:

(package root)
    lib/
        netstandard1.3/
            MyClassLibrary.dll
    build/
        netstandard1.3/
            MyClassLibrary.props
            MyClassLibrary.targets

例如,请参阅NuGet.org上的或及其GitHub上的。此包使用MSBuild目标在编译步骤之前自动生成程序集属性

,感谢您提供的信息。您知道有任何nuget软件包添加了可作为参考的自定义构建步骤吗?可能是一个用于.NET内核的脚本?我想这些.ps1脚本不会在MacOS上执行吧?即使您已经安装了PowerShell Core,也是如此。我使用Jetbrains Rider作为IDE,我的感觉是这不受支持。我认为这样做的方法是通过。不确定它是否适用于核心项目,但我不明白为什么不适用。这比在安装脚本上乱搞要容易得多。我想知道更多关于这方面的信息!我可以使用
.targets
文件将
内容
文件从包复制到安装包的项目吗?