我有一个xamarin forms pcl解决方案,其中还包含一个nunit项目,它只测试非gui方面。
我在窗户下发育。
现在我想在我的ci服务器上的linux(使用mono)上运行nunit测试。
为此,我需要编译pcl项目和nunit项目(而不是android和ios)。
在nunit项目中运行xbuild时,它告诉我:

AppTests.cs(1,7): error CS0246: The type or namespace name `MY_App' could not be found. Are you missing an assembly reference?

(My_App是PCL项目的名称)。
现在我可以补充:
<Reference Include="My_App">
  <HintPath>..\My-App\MY_App\bin\Release\MY_App.dll</HintPath>
</Reference>

而且有效!
我的问题是:除了调整linux的项目文件之外,还有别的方法吗?这些项目文件的主要用途是从visual studio中使用。我可以在命令行或在一个额外的文件中指定引用吗?

最佳答案

不要添加硬编码的程序集(通过<Reference>元素),而是将MY_App.csproj的基于项目的引用添加到基于NUnit的项目中。这可以通过ide(visual studio、xamarin studio,…)或手动编辑.csproj文件来完成。
你会得到一个ProjectReference的结果,看起来像:

<ProjectReference Include="..\RealmLoginKitTest\RealmLoginKitTest.csproj">
  <Project>{6524A097-D064-4933-987F-76EB19AF3F57}</Project>
  <Name>RealmLoginKitTest</Name>
  <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
</ProjectReference>

现在,当您使用xbuild|MSBuild构建基于NUnit的项目时,它还将构建引用的项目,并将其构建构件包含在nunit项目的输出目录中(假设您没有关闭本地副本(false),这将在该项目的<Private>False</Private>部分中放置一个Reference元素。

关于linux - 在命令行(或项目文件以外的其他位置)上指定xbuild的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41766426/

10-11 22:49
查看更多