web-dev-qa-db-ja.com

Visual Studio 2013にアップグレードした後、SqlServer.targetsファイルが見つからないため、プロジェクトの読み込みに失敗する

Visual Studio 2013にアップグレードしたところ、ソリューションを開こうとすると、古いSQLプロジェクトの読み込みに失敗しました。表示されるエラーは次のとおりです。

インポートされたプロジェクト「C:\ Program Files(x86)\ MSBuild\12.0\bin\SqlServer.targets」が見つかりませんでした。宣言内のパスが正しいこと、およびファイルがディスク上に存在することを確認してください。 C:\ Some\Path\To\Project\Database.sqlproj

私の_.sqlproj_ファイルには、次の行があります

_<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />
_

これは、Visual Studio 2012では_C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets_に解決されますが、Visual Studio 2013ではC:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targetsに解決されます。ただし、_SqlServer.targets_ファイルはどちらの場所にもありません。

これはおそらく、MSBuildが.Net Frameworkの一部ではなく、Visual Studioの一部になるためです。

この問題を修正し、このプロジェクトをVisual Studio 2013に移行する方法を知っている人はいますか?

30
Chris

VS 2013でVS 2010ソリューションを構築しようとしたときに同じ問題が発生しました。解決策は、最初にソリューションファイルをVS 2013にアップグレードすることでした。その後、それ以上の変更なしで動作しました。

1
Blade

_SqlServer.targets_を_C:\Windows\Microsoft.NET\Framework\v3.5_からC:\Program Files (x86)\MSBuild\12.0\Binにコピーすると、役立ちます。 VS2013は古いプロジェクトを開くことができます。

29
Vladimir Dronov

Visual Studio 2008から2013にアップグレードするときにも同様の問題が発生しました。少し時間がかかりましたが、VS 2013(再度)のSSDTをインストールする必要があり、新しいデータベースプロジェクトを作成して、新しいsqlserver.targetsへの相対パスを確認しましたファイル。次のようになります。

  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />

このエラーを修正するために私が見つけた最大の障害は、提供されたエラーメッセージを理解しようとすることでした(BC2014:値 'database'はオプション 'target'に対して無効です)

お役に立てれば!

4
Rolan

私は同じ問題を抱えていて、この方法で解決しました: 'C:\ Windows\Microsoft.NET\Framework\v4.0.30319に' SQLServer.targets 'という名前のファイルを作成するだけです= '次の内容で:

<Project xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">

    <PropertyGroup>
           <SqlClrTargetsFullPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlClr.targets</SqlClrTargetsFullPath>
    </PropertyGroup>

    <Import Project="$(SqlClrTargetsFullPath)" Condition="Exists('$(SqlClrTargetsFullPath)')"/>
</Project>

幸運を。

2
Stephen Knupfer

これは、Windows 10で古いプロジェクトを開いたときにも発生する可能性があります。

Windows 10のVisual Studio 2010で古いSQL Server CLRアセンブリを開くと、同じ問題が発生しました(SqlServer.targetsが見つかりませんでした)アセンブリの記述に最初に使用したのと同じバージョン

同じプロジェクトがWindows 7コンピューターのVisual Studio 2010で完全に正常に開いたことを確認しました。

解決

エラーメッセージに注意してください。私の場合、それは:

インポートされたプロジェクト「C:\ Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets」が見つかりませんでした。宣言内のパスが正しいこと、およびファイルがディスク上に存在することを確認してください。

Vladimir Dronovの回答「C:\ Windows\Microsoft.NET\Framework\v3.5\SqlServer.targets」に示されている場所から、エラーメッセージに示されているディレクトリにSqlServer.targetsをコピーするだけです。

私の場合、それは「C:\ Windows\Microsoft.NET\Framework\v4.0.30319 \」でした。

1
Jan1torEarl

解決策1:

プロジェクトが.csprojファイルの場合、アップグレード中にVisual Studioが.sqlprojファイルも生成したかどうかを確認する必要があります。その場合は、代わりにソリューションに追加できます。

解決策2:

.sqlprojファイルの次の行を変更してみてください。

<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />

<Import Project="$(MSBuildBinPath)\SqlServer.targets" />
0
Radu Damian

これらのソリューションのいくつかに起因するエラー

特定の質問を投稿しました( C#VS 2013エラー02019:/ targetの無効なターゲットタイプ: 'exe'、 'winexe'、 'library'、 'module'、 'appcontainerexe'または 'winmdobj' CSCを指定する必要があります )Vladimir Dronovの答えの下にあるChris Torngによって記述された致命的なビルドエラーに関して:

エラー1 02019:/ targetの無効なターゲットタイプ:「exe」、「winexe」、「library」、「module」、「appcontainerexe」または「winmdobj」CSCを指定する必要があります


修正

このフォーラムのアドバイスに従って、VS2013 Community EditionのSQL Server開発ツールの互換性の問題に関連するエラーを取り除くことができました。

https://connect.Microsoft.com/SQLServer/feedbackdetail/view/979839

Bscliftonによる2014/11/15 7:18 AMの投稿

Community 2013エディションでもこの問題がありました。 [ツール]-> [拡張機能と更新]に移動し、「データベースツール用のMicrosoft SQL Server更新」を更新すると、問題が解決しました:)

これがうまくいかない場合は、問題を修正する方法について他のいくつかのアイデアを提供しているので、そのフォーラムをチェックすることをお勧めします

0
Justin L.