Visual studio 2012 发布web项目-MSBuild不复制依赖项目';未添加对web项目的引用的DLL
我的web应用程序基本上有三个独立的项目:Visual studio 2012 发布web项目-MSBuild不复制依赖项目';未添加对web项目的引用的DLL,visual-studio-2012,msbuild,Visual Studio 2012,Msbuild,我的web应用程序基本上有三个独立的项目: 我希望发布到生产环境的web项目“MyWeb” 定义业务层接口的库项目“MyBusiness”。此项目被MyWeb项目引用 另一个库项目“MyBusinessImplementation”,包含业务层的实现(具体类实现 业务层的接口) 要进行依赖注入,我的MyWeb项目只需添加对MyBusinessinterfaces项目的引用,而不是对实现的引用(或者我的web项目与实现紧密相关,而且我不能阻止我的开发人员在我的web项目中创建一个具体类的“新”对象
MyBusiness
interfaces项目的引用,而不是对实现的引用(或者我的web项目与实现紧密相关,而且我不能阻止我的开发人员在我的web项目中创建一个具体类的“新”对象)
如果不直接添加对业务实现项目的引用,则在构建项目时,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>
BuildDependentProjects$(BuildDependsOn);
配置=$(配置)
问题是,当我从VisualStudio2012发布MyWeb项目时,或者当我运行
MSBuild“MyWeb.jsproj”\T:Package\p:Configuration=Debug
我看到MyBusinessImplementation.dll被复制到我工作代码目录的MyWeb的bin文件夹中,但不在发布的包目录中
我还尝试将复制任务的DestinationFolder更改为绝对路径,如“C:\abc”,然后我看到.dll文件成功复制到abc文件夹,但是仍然没有复制到我的包的web的bin文件夹。看起来您缺少在部署之前将复制的项添加到WebDeploy清单和包的步骤 查看这篇文章,了解如何在软件包中添加额外文件的最佳答案。