Visual studio 创建包含Web项目和未引用模块的WebDeploy Zip

Visual studio 创建包含Web项目和未引用模块的WebDeploy Zip,visual-studio,msbuild,azure-devops,web-deployment,Visual Studio,Msbuild,Azure Devops,Web Deployment,我们有一个VS 2017解决方案,其中包含一个主要的web项目。我们还有3个其他web项目-这些是依赖于主web项目的模块。但是,主web项目没有引用或了解有关该模块的任何信息。解决方案生成时,模块将其输出复制到主web项目的bin文件夹中。模块必须依赖于主项目的最新版本,因此需要先构建主项目,然后构建模块。这一切都是伟大的地方-该网站加载模块的工作等 我们目前正在使用Octopus,它的Octopack步骤在解决方案之后运行,并获取所有文件。我们正试图转向仅使用VST,但在将模块文件放入标准w

我们有一个VS 2017解决方案,其中包含一个主要的web项目。我们还有3个其他web项目-这些是依赖于主web项目的模块。但是,主web项目没有引用或了解有关该模块的任何信息。解决方案生成时,模块将其输出复制到主web项目的bin文件夹中。模块必须依赖于主项目的最新版本,因此需要先构建主项目,然后构建模块。这一切都是伟大的地方-该网站加载模块的工作等

我们目前正在使用Octopus,它的Octopack步骤在解决方案之后运行,并获取所有文件。我们正试图转向仅使用VST,但在将模块文件放入标准web部署zip时遇到了问题

在解决方案上运行MSBbuild时,它会为每个web项目创建一个zip文件。主项目的zip文件不包含模块的Dll文件(即使它们位于bin文件夹中)。因此,当我们通过VSTS部署时,站点缺少模块。我们如何告诉MSBuild为包含内置模块的解决方案创建单个webdeploy包

MSBuild命令基本上是VSTS中的现成命令:

/p:DeployOnBuild=true
/p:WebPublishMethod=Package
/p:PackageAsSingleFile=true
/p:PackageLocation="C:\temp\web.zip"

据我所知,MsBuild在其他解决方案项将其内容复制到bin文件夹之前先进行webdeploy压缩。在最好的情况下,MSBuild对我来说有点神秘。

在很大程度上,这只是让MSBuild包含不属于项目的额外文件的一个例子。pack web项目发布只关心项目中包含的文件

我按照这个问题中的指南更新了主要的web项目Csproj文件。我运行了一次MSBuild来生成解决方案,这样模块dll文件就可用了,然后我再次使用主web项目运行了MSBuild来创建包含额外文件的WebDeploy输出


不确定这是否是最好的方法-仅添加一些文件似乎有点复杂,但它可以工作。

在很大程度上,这只是使MSBuild包含不属于项目的额外文件的一种情况。pack web项目发布只关心项目中包含的文件

我按照这个问题中的指南更新了主要的web项目Csproj文件。我运行了一次MSBuild来生成解决方案,这样模块dll文件就可用了,然后我再次使用主web项目运行了MSBuild来创建包含额外文件的WebDeploy输出


不确定这是否是最好的方法-仅添加一些文件似乎有点复杂,但它可以工作。

我认为这主要是MSBuild不关心此处未引用的文件的情况。因此,我认为我只需要构建解决方案——然后包含以第二次构建中存在的文件为条件的包含——希望能够理解,我认为这在很大程度上是MSBuild不关心未引用文件的情况。因此,我认为我只需要构建解决方案-然后包含以第二次构建中存在的文件为条件的内容-希望能够理解感谢您在此处共享您的解决方案,您可以将其标记为解决方案,直到宽限期结束,因此,它可以帮助其他遇到相同问题的社区成员。感谢您在此处分享您的解决方案,您可以将其标记为解决方案,直到宽限期结束,这样它就可以帮助其他遇到相同问题的社区成员。