我的Web应用程序基本上由三个独立的项目组成:
如果不直接添加对业务实现项目的引用,在构建项目时,Visual Studio不知道要将实现项目的DLL复制到Web的bin文件夹中,因此我将其添加到MyWeb项目文件中:
问题在于,当我从Visual Studio 2012发布MyWeb项目或运行“MSBuild "MyWeb.jsproj" \T:Package \P:Configuration=Debug”命令时,发现MyBusinessImplementation.dll被复制到我的工作代码目录中MyWeb的bin文件夹中,但没有复制到发布包目录中。
我尝试将Copy任务的DestinationFolder更改为绝对路径,例如“C:\ abc”,然后可以成功地将.dll文件复制到abc文件夹中,但仍未复制到我的包的网站的bin文件夹中。
- 一个名为“MyWeb”的Web项目,我想将其发布到生产环境
- 一个名为“MyBusiness”的库项目,该项目定义了业务层的接口。这个项目被MyWeb项目引用
- 另一个名为“MyBusinessImplementation”的库项目,其中包含业务层的实现(具体类实现了业务层的接口)。
如果不直接添加对业务实现项目的引用,在构建项目时,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文件夹中,但仍未复制到我的包的网站的bin文件夹中。