tag:help.appveyor.com,2012-11-13:/discussions/questions/35965-triggering-one-project-from-anotherAppVeyor: Discussion 2019-05-27T21:01:04Ztag:help.appveyor.com,2012-11-13:Comment/471190112019-03-27T17:23:11Z2019-03-27T17:23:11ZTriggering one project from another<div><p>Hi Arnon,</p>
<p>I would suggest the following:</p>
<ul>
<li>
<p>Leave a single solution, but create separate <a href="https://docs.microsoft.com/en-us/visualstudio/extensibility/internals/solution-configuration?view=vs-2017">configurations</a>, one containing old MSTest projects and another containing .NET Standard projects. Lets call those configurations <code>OldMsTest</code> and <code>NetStandard</code> for example.</p>
</li>
<li>
<p>Create a build <a href="https://www.appveyor.com/docs/build-configuration/#build-matrix">build matrix</a> which will run <code>OldMsTest</code> on <code>Visual Studio 2015</code> and <code>NetStandard</code> on <code>Visual Studio 2017</code>. Simplest way to achieve this is used environment variables-based matrix, e.g.</p>
</li>
</ul>
<pre>
<code>environment:
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CONFIGURATION: NetStandard
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
CONFIGURATION: OldMsTest</code>
</pre>
<ul>
<li>
<p>Then you need to make <code>Visual Studio 2015/OldMsTest</code>job to wait for the <code>Visual Studio 2017/NetStandard</code> one. We do not have 1st class support for dependencies between jobs, but you can use <a href="https://gist.github.com/IlyaFinkelshteyn/dc0b08593cb0babff2bd84dd05c4ee42">this script sample</a>. just in this case you need to make 2nd job to wait, not 1st one.</p>
</li>
<li>
<p>I assume that <code>Visual Studio 2017/NetStandard</code> will package nuget artifacts and <code>Visual Studio 2015/OldMsTest</code> will get them from <a href="https://www.appveyor.com/docs/nuget/">AppVeyor nuget feed</a>. Note that AppVeyor push nuget packages to the feed asynchronously, so when <code>Visual Studio 2017/NetStandard</code> job finished, nuget packages can be still in the process of publishing. So there is a very small chance of race condition exist. If you hit it, you can simple add retry to <code>nuget restore</code>, e.g. <code>appveyor-retry nuget restore</code>in the configuration specific to <code>Visual Studio 2015/OldMsTest</code>.</p>
</li>
<li>
<p>To specialize build scenario for build jobs in matrix check <a href="https://www.appveyor.com/docs/build-configuration/#specializing-matrix-job-configuration">this</a>.</p>
</li>
</ul>
<p>Ilya.</p></div>Ilya Finkelshteyn