[英]Publish web project - MSBuild does not copy dependent projects' DLL which are not added reference to web project
我的Web应用程序基本上有三个独立的项目:
要做依赖注入,我的MyWeb项目只是添加对MyBusiness
接口项目的引用,而不是实现(或者我的web项目与实现密切相关,而且我也无法阻止我的开发人员创建一个“新”对象我的web项目中的具体类)。
在不直接向Business实现项目添加引用的情况下,构建项目时,Visual Studio不知道将实现项目的DLL复制到web的bin文件夹中,因此我将其添加到MyWeb项目文件中:
<PropertyGroup>
<BuildDependsOn>BuildDependentProjects;$(BuildDependsOn);</BuildDependsOn>
</PropertyGroup>
<ItemGroup>
<ProjectToBuild Include="$(SolutionDir)\MyBusinessImplementation\MyBusinessImplementation.csproj">
<Properties>Configuration=$(Configuration)</Properties>
</ProjectToBuild>
</ItemGroup>
<Target Name="AfterBuild">
<Copy SourceFiles="$(SolutionDir)\MyBusinessImplementation\bin\$(Configuration)\MyBusinessImplementation.dll" DestinationFolder="$(SolutionDir)\MyWebSite\bin"></Copy>
</Target>
<Target Name="BuildDependentProjects">
<MSBuild Projects="@(ProjectToBuild)" />
</Target>
当我从Visual Studio 2012发布MyWeb项目或运行时,问题是
“MSBuild”MyWeb.jsproj“\\ T:Package \\ P:Configuration = Debug”
我看到MyBusinessImplementation.dll被复制到我工作代码目录的MyWeb的bin文件夹中,但不会复制到已发布的包目录中。
我还尝试将Copy任务的DestinationFolder更改为绝对路径,如“C:\\ abc”,然后我看到.dll文件已成功复制到abc文件夹,但仍未复制到我的Package的web的bin文件夹中。
看起来您错过了在部署之前将复制的项目添加到WebDeploy清单和包中的步骤。
查看这篇文章,了解如何在软件包中包含额外文件的绝佳答案。
如何使用VS2010 Web部署包包含其他文件?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.