3

Visual Studio 2012 にソリューションがあります。これには、テスト用の 2 つのプロジェクトが含まれています。1 つは F# で、もう 1 つは C# です。NUnit と FsUnit を Nuget パッケージとしてインストールしました。インストール後、これらのアセンブリへの参照は、ソリューション内dll\packages\フォルダーにある を指しています。ソリューションをコンパイルした後、F# プロジェクトの参照が変更され、C:\Program Files (x86)\フォルダーと\bin\Debug\FsUnit.NUnit.dllF# プロジェクトにインストールされている NUnit がポイントされます。C# プロジェクトでは、参照は packages フォルダーを指し続けます。

プロジェクトは Visual Studio でビルドされ、テストは正常に実行されます。TeamCity でビルドすると、F# プロジェクトで NUnit と FsUnit が見つからないため失敗します。

コンパイル時に参照が変更される理由はありますか?

さらに、F# プロジェクトの参照のプロパティに含まれる情報が、C# プロジェクトの参照のプロパティに比べてはるかに少ないのはなぜですか?

4

2 に答える 2

2

この質問を締めくくり、将来の参考のために.fsproj

<Reference Include="FsUnit.NUnit, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null">
  <Private>True</Private>
</Reference>
<Reference Include="nunit.framework, Version=2.6.0.12051, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
  <Private>True</Private>
</Reference>

.csprojブライアンのアドバイスに従って、それらを以下のものに置き換えました

<Reference Include="FsUnit.NUnit, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
  <HintPath>..\packages\FsUnit.1.1.0.0\Lib\Net40\FsUnit.NUnit.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.6.0.12051, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
  <HintPath>..\packages\NUnit.2.6.0.12054\lib\nunit.framework.dll</HintPath>
</Reference>
于 2012-06-22T17:46:43.370 に答える
2

これは、F# プロジェクトのみに影響する NuGet のバグのようで、VS 2012 にのみ影響します。.fsprojファイル。

http://nuget.codeplex.com/workitem/2149

VS 2012 の最終リリースの前に注目を集めることができるように、その問題に投票してください!

于 2012-06-22T21:39:34.210 に答える