[英]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.