如何为具有依赖关系的多个解决方案创建构建定义?
背景:
有两种解决方案
解决方案A是类库,包含一个对象类&Class;'
解决方案B是使用' ClassA'的控制台程序。通过添加解决方案A生成的dll引用。
我想使用一个TFS 2017构建定义来构建两个解决方案。
引发错误:
Main\Source\SolutionB\Program.cs (13, 13)
Main\Source\SolutionB\SolutionB\Program.cs(13,13): Error CS0246:
The type or namespace name 'SolutionA' could not be found (are you
missing a using directive or an assembly reference?)
如何配置SolutionB知道使用从SolutionA构建生成的dll的构建定义?
答案 0 :(得分:-1)
您应该构建第一个将在第二个项目中用作dll的项目,而不是复制文件来构建工件;而不是将您的dll发布到您在第二个项目中引用的特定文件夹,最后构建您的第二个项目。
您可以使用类似的过程检查此图像,只需在下面的图像中将工件发布到三个不同的位置,在您的情况下它应该是一个发布任务。
这是一种简单的方法;但是如果你也将项目A用于其他一些项目,你可能想要使用NuGet包。我将把它描述为解决方案2。
解决方案2 :项目A的工件应该create a Nuget packages。您可以在自定义源文件夹中host your Nuget packages。将您的第一个项目包添加到您的项目中作为参考。您不需要执行额外的操作只需在构建定义中添加nuget还原任务即可。如果需要,您可以在构建定义期间将第一个项目发布为nuget包。请检查how to restore and install neuget packages by build definiton。