2017-02-13 24 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 is right, Вы создаете решение, WebUI.UnitTest.csproj и Core.UnitTest.csproj должны быть построены уже.

Я также добавил шаги по созданию WebUI.UnitTest.csproj и Core.UnitTest.csproj в файле WebUI.csproj, так что вам нужно всего лишь создать WebUI.csproj.