0

VS 2010/SQL Server 2005 で SQL CLR プロジェクトの msbuild (継続的インテグレーション) を実行しようとしています。プロジェクトは VS で正しくビルドされますが、サード パーティの外部参照が必要なため、msbuild でビルドできません。

これを回避する一般的な方法は、ライブラリ フォルダーを追加し、そのライブラリ フォルダーへの参照をポイントすることです。SQL CLR プロジェクトでこれを行うにはどうすればよいですか?

私が得るビルドエラーは次のとおりです。

[19:38:42]CorrSqlServerCompo\PowerStatRegression.csproj.teamcity: Build target: Build
[19:38:42][CorrSqlServerCompo\PowerStatRegression.csproj.teamcity] CoreCompile
[19:38:42][CoreCompile] Csc
[19:38:42][Csc] matrix\MatrixHandler.cs(5, 7): error CS0246: The type or namespace name 'Extreme' could not be found (are you missing a using directive or an assembly reference?)
[19:38:42][Csc] matrix\MatrixHandler.cs(6, 7): error CS0246: The type or namespace name 'Extreme' could not be found (are you missing a using directive or an assembly reference?)
[19:38:42][Csc] matrix\MatrixHandler.cs(216, 51): error CS0246: The type or namespace name 'GeneralMatrix' could not be found (are you missing a using directive or an assembly reference?)
[19:38:42][CorrSqlServerCompo\PowerStatRegression.csproj.teamcity] Project CorrSqlServerCompo\PowerStatRegression.csproj.teamcity failed.

ビルド プロジェクト ファイルの項目グループは次のとおりです。

<ItemGroup>
<Reference Include="Extreme.Numerics.Net20, Version=3.6.10055.0, Culture=neutral, PublicKeyToken=9e513770f58567b2, processorArchitecture=MSIL">
  <SubType>SQLCLR</SubType>
  <Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.XML" />

4

1 に答える 1

1

参照の追加機能を使用して、アセンブリ参照を SQL CLR プロジェクトに追加できるはずです。次に、参照プロパティ - ローカルにコピーを true に設定します。 ここに画像の説明を入力

しかし...それがうまくいかない場合、MSBuildがアセンブリ参照を解決する方法のために、ローカルGACにインストールされているものと、CIビルドを実行しているGACにインストールされているものに問題がある可能性があります。

Chris Mann (MSFT) は、ここでGAC ref について詳しく述べています。

... カバーの下では、それらはすべて msbuild の ResolveAssemblyReference タスクを使用します。依存関係が gac にある場合は、どこから解決しても、copy local を false に設定します。これは、アセンブリをローカルにコピーする必要があるかどうかを判断するために適用するヒューリスティックの一部です。これは gac にインストールされているため、ターゲット マシンの gac にも存在するため、ローカルにコピーする必要はないと想定しています。

于 2012-11-20T03:31:10.257 に答える