簡體   English   中英

發布Web項目 - MSBuild不復制依賴項目的DLL,這些DLL未添加對Web項目的引用

[英]Publish web project - MSBuild does not copy dependent projects' DLL which are not added reference to web project

我的Web應用程序基本上有三個獨立的項目:

  1. 我想要發布到生產環境的Web項目“MyWeb”
  2. 一個庫項目“MyBusiness”,它定義了業務層的接口。 該項目由MyWeb項目引用
  3. 另一個庫項目“MyBusinessImplementation”,它包含Business層的實現(具體類實現了Business層的接口)。

要做依賴注入,我的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM