Deployment 如何将项目的输出包括在随后生成的项目的msbuild部署中
我在从事商业工作。该框架的构建方式允许在解决方案中创建插件作为附加项目。这些项目必须参考“核心”,它本质上是部署的MVC网站 由于msbuild的性质,我想不出任何方法(没有黑客攻击)将插件项目构建(dll文件)的输出包含在核心构建部署中,因为插件需要首先构建核心 我理解这是一个循环依赖,我也理解在正常情况下,人们甚至不需要插件知道web项目的存在。。。但这就是使用NopCommerce时的情况 我已尝试在网站csproj文件中使用msbuild执行以下操作:Deployment 如何将项目的输出包括在随后生成的项目的msbuild部署中,deployment,azure-devops,msbuild,nopcommerce,Deployment,Azure Devops,Msbuild,Nopcommerce,我在从事商业工作。该框架的构建方式允许在解决方案中创建插件作为附加项目。这些项目必须参考“核心”,它本质上是部署的MVC网站 由于msbuild的性质,我想不出任何方法(没有黑客攻击)将插件项目构建(dll文件)的输出包含在核心构建部署中,因为插件需要首先构建核心 我理解这是一个循环依赖,我也理解在正常情况下,人们甚至不需要插件知道web项目的存在。。。但这就是使用NopCommerce时的情况 我已尝试在网站csproj文件中使用msbuild执行以下操作: <Target Name="
<Target Name="NopTarget" AfterTargets="Build">
<ItemGroup>
<BuildPlugins Include="..\..\Plugins\**\*.csproj" />
</ItemGroup>
<Message Text="directory: @(BuildPlugins)" Importance="HIGH" />
<MSBuild Projects="@(BuildPlugins)" />
<ItemGroup>
<NopPlugins Include="$(MSBuildProjectDirectory)\Plugins\**\*.*" />
</ItemGroup>
<Message Text="@(BuildPlugins)" Importance="HIGH" />
<Message Text="After Build Plugin Copy - @(NopPlugins) - $(TargetDir)\%(RecursiveDir)" Importance="HIGH" />
<Copy SourceFiles="@(NopPlugins)" DestinationFolder="$(TargetDir)\Plugins\%(RecursiveDir)" />
。。。但我认为这是一个巨大的混乱。而且,它似乎只能在我的开发机器上正常工作。当我在devops中尝试时,我得到了一堆与失败的恢复相关的nuget包错误。同样,这是一个循环依赖或构建顺序的问题
(仅供参考,我正在进行参数化部署,以便与Azure Devops一起使用)
。。。但我认为这是一个巨大的混乱。而且,它似乎只能正常工作
在我的开发机器上。当我在devops尝试时,我得到了一堆nuget
与还原失败相关的包错误。再说一次,这是我们的问题
循环依赖,或构建顺序
由于它在您的本地机器上工作,我认为这只是您的恢复步骤出了问题。它导致了下一个构建错误
根据脚本,您的核心
项目和插件
项目不在同一目录级别。因此,如果xx.sln
文件中未定义plugins
项目,则您的nuget/dotnet restore
任务应运行两次,以分别还原两个项目的包
如果您的项目目标是.net framework
,请使用,或者在项目目标是.net core/standard
时使用中的restore命令。只需确保已恢复所有项目的包