Asp.net web api 如何发布.Net Core的Web API并将结果转换为.Zip文件

Asp.net web api 如何发布.Net Core的Web API并将结果转换为.Zip文件,asp.net-web-api,zip,publish,Asp.net Web Api,Zip,Publish,我有一个.Net核心Web API项目,我需要将“dotnet发布”的内容转换为.Zip文件,然后我需要将其推送到存储库中 我可以使用dotnet、msbuild或其他工具来实现自动化 注意:当我说内容发布时,我指的是托管在iis中的文件。但我不需要使用iis,只需要使用zip 我找到了这个 它起作用,但并不完全有效。当我运行“dotnet发布”时,会创建一个.zip文件。但它只包含bin目录的内容,不包含nuget或包 有人知道我怎么做吗。你能进一步解释一下“它不包含nuget或包”是什么

我有一个.Net核心Web API项目,我需要将“dotnet发布”的内容转换为.Zip文件,然后我需要将其推送到存储库中

我可以使用dotnet、msbuild或其他工具来实现自动化

注意:当我说内容发布时,我指的是托管在iis中的文件。但我不需要使用iis,只需要使用zip

我找到了这个


它起作用,但并不完全有效。当我运行“dotnet发布”时,会创建一个.zip文件。但它只包含bin目录的内容,不包含nuget或包


有人知道我怎么做吗。

你能进一步解释一下“它不包含nuget或包”是什么意思吗?nuget包在你进行nuget还原时会被解析,而适用的库在你构建项目时会被复制到bin目录中。因此,bin目录已经包含运行应用程序所需的所有二进制文件。Hello@DurgaPrasad,程序包正在%userprofile%\.nuget\packages文件夹(windows)中还原。它们不会还原到bin文件夹中。我可以强制它恢复bin文件夹中的包吗?是的,包在\.nuget\packages目录中还原。但是,在构建解决方案时,msbuild会自动将运行应用程序所需的所有二进制文件复制到bin文件夹中。我能知道你面临的问题吗?nuget引用的DLL是否未复制到bin文件夹中?是@DurgaPrasad,.nuget引用的DDL未复制到bin文件夹中。Bin文件夹仅包含属于项目和设置文件的dll。但是,当我发布时,nuget packages也包含在内。您能否进一步解释一下“它不包含nugets或包”的含义。在您执行nuget还原时,nuget包将得到解析,并且在您构建项目时,适用的库将复制到bin目录中。因此,bin目录已经包含运行应用程序所需的所有二进制文件。Hello@DurgaPrasad,程序包正在%userprofile%\.nuget\packages文件夹(windows)中还原。它们不会还原到bin文件夹中。我可以强制它恢复bin文件夹中的包吗?是的,包在\.nuget\packages目录中还原。但是,在构建解决方案时,msbuild会自动将运行应用程序所需的所有二进制文件复制到bin文件夹中。我能知道你面临的问题吗?nuget引用的DLL是否未复制到bin文件夹中?是@DurgaPrasad,.nuget引用的DDL未复制到bin文件夹中。Bin文件夹仅包含属于项目和设置文件的dll。然而,当我发布nuget软件包时,它也包括在内。
<Target Name="ZipOutputPath" AfterTargets="Publish">
    <ZipDirectory
        SourceDirectory="$(OutputPath)"
        DestinationFile="$(MSBuildProjectDirectory)\output.zip" />
</Target>