2017-02-13 145 views
0

我有這樣的解決方案structute:的csproj文件中的設置項目

Solution.sln 
    |--WebUI.csproj (has Core.csproj as dependency) 
    |--Core.csproj 
    |--Tests 
     |--UnitTests 
      |--WebUI.UnitTest.csproj (has Core.csproj and WebUI.csproj as dependencies) 
      |--Core.UnitTest.csproj (has Core.csproj as dependency) 

我要補充WebUI.csproj建立WebUI.UnitTest.csproj和Core.UnitTest.csproj一起? (在我的WebUI \ bin文件夾中,我需要這些庫:WebUI.UnitTest.dll和Core.UnitTest.dll)。

謝謝!

+0

如果您構建解決方案,WebUI.UnitTest.csproj和Core.UnitTest.csproj應該已經構建好。你爲什麼希望他們從WebUI.csproj內部構建? (如果這是你想要的,我不確定我是否理解了這個問題) – stijn

回答

0

直接方法是將WebUI.UnitTest項目和Core.UnitTest項目添加爲WebUI項目的依賴項。但是,WebUI.UnitTest項目已將WebUI.csproj作爲依賴關係,但此方法在您的解決方案結構中不起作用。如果你只是想有WebUI.UnitTest.dll和Core.UnitTest.dll在WebUI中\ bin文件夾,您可以在WebUI.csproj添加任務將這些文件複製到該文件夾​​:

<Target Name="AfterBuild"> 

<PropertyGroup> 
    <SolutionDir>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))</SolutionDir> 
</PropertyGroup> 

<Exec Command="&quot;$(MSBuildBinPath)\MSBuild.exe&quot; &quot;$(SolutionDir)\WebUI.UnitTest\WebUI.UnitTest.csproj&quot;" /> 
<Exec Command="&quot;$(MSBuildBinPath)\MSBuild.exe&quot; &quot;$(SolutionDir)\Core.UnitTest\Core.UnitTest.csproj&quot;" /> 

<PropertyGroup> 
    <CopyFileOutput>$(SolutionDir)\WebUI.UnitTest\bin\Debug\WebUI.UnitTest.dll;$(SolutionDir)\Core.UnitTest\bin\Debug\Core.UnitTest.dll</CopyFileOutput> 
</PropertyGroup> 



<Copy 
    SourceFiles="$(CopyFileOutput)" 
    DestinationFolder="$(SolutionDir)\WebUI\bin" 
/> 

請注意,:stijn的評論是正確的,你構建的解決方案,WebUI.UnitTest.csproj和Core.UnitTest.csproj應該已經建成。

我還在WebUI.csproj中添加了WebUI.UnitTest.csproj和Core.UnitTest.csproj的構建步驟,以便您只需構建WebUI.csproj。

相關問題