Asp.net MSBuild如何在不生成zip文件的情况下为.NET核心应用程序创建web部署包

Asp.net MSBuild如何在不生成zip文件的情况下为.NET核心应用程序创建web部署包,asp.net,.net,visual-studio,.net-core,msbuild,Asp.net,.net,Visual Studio,.net Core,Msbuild,因此,我尝试使用MSBuild构建一个.NET核心应用程序,并让它创建web部署文件夹,但不自动将其放入zip文件中。我可以通过使用/p:WebPublishMethod=Package和/p:PackageAsSingleFile=false为.NET Framework应用程序执行此操作,它创建相同的文件夹结构,但不将其添加到zip文件中。然而,对于.NET核心应用程序,它似乎忽略了这个标志,总是将最后一个包拉上拉链 我不想将其压缩的原因是,在部署之前,我需要向构建添加一些“自定义”文件。我

因此,我尝试使用MSBuild构建一个.NET核心应用程序,并让它创建web部署文件夹,但不自动将其放入zip文件中。我可以通过使用
/p:WebPublishMethod=Package
/p:PackageAsSingleFile=false
为.NET Framework应用程序执行此操作,它创建相同的文件夹结构,但不将其添加到zip文件中。然而,对于.NET核心应用程序,它似乎忽略了这个标志,总是将最后一个包拉上拉链

我不想将其压缩的原因是,在部署之前,我需要向构建添加一些“自定义”文件。我无法在构建过程中添加文件,因为我们有许多不同的客户端,它们都共享相同的“基本”软件,然后需要添加特定于客户端的文件。因此,我希望构建“基本”软件,然后能够复制输出文件夹,添加特定于客户端的文件,然后压缩该构建以部署到IIS。这节省了大量的时间,因为替代方案是为每个客户机进行新的构建,即使95%的软件是相同的

那么,有没有其他方法可以通过.NET核心应用程序实现这一点

我一直在通过命令行测试MSBuild。该解决方案混合了.NET Framework和.NET核心asp.NET网站。这就是我正在运行的:

msbuild.exe "Solution.sln" /nologo /nr:false /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=false /p:SkipInvalidConfigurations=true /p:PreBuildEvent="" /p:PostBuildEvent=""  /p:BasePackageLocation="C:\Temp\BuildOutput" /p:platform="any cpu" /p:configuration="release"
这适用于.NET Framework网站,但.NET核心网站仍在压缩

请注意,BasePackageLocation是一个自定义属性,它将PackageLocation设置为“$(BasePackageLocation)\$(MSBuildProjectName)\”,以便每个网站都放在自己的子目录中

那么,有没有其他方法可以通过.NET核心应用程序实现这一点

对不起,答案可能是否定的。这是关于发布
.net核心
项目的,已经向产品团队报告,在修复之前可能还有很长的路要走

对于
.net core
中的
web部署包
模式,您将在
.zip
所在的同一文件夹中获得
WebApplication.cmd
,其中
xx.cmd
中的许多命令都与
xx.zip
关联,因此不建议手动对其进行解压缩

我建议我们可以在那里跟踪问题(DC),如果有任何更新或修复,我将更新答案:)

那么,有没有其他方法可以通过.NET核心应用程序实现这一点

对不起,答案可能是否定的。这是关于发布
.net核心
项目的,已经向产品团队报告,在修复之前可能还有很长的路要走

对于
.net core
中的
web部署包
模式,您将在
.zip
所在的同一文件夹中获得
WebApplication.cmd
,其中
xx.cmd
中的许多命令都与
xx.zip
关联,因此不建议手动对其进行解压缩

我建议我们可以在那里跟踪问题(DC),如果有任何更新或修复,我将更新答案:)