Visual Studio 2013 にアップグレードした後、SqlServer.targets ファイルが見つからないためプロジェクトの読み込みに失敗する
-
20-12-2019 - |
質問
Visual Studio 2013 にアップグレードした後、ソリューションを開こうとすると、古い SQL プロジェクトの読み込みに失敗することがわかりました。表示されるエラーは次のとおりです。
インポートされたプロジェクト "C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targets" が見つかりませんでした。宣言内のパスが正しいこと、およびファイルがディスク上に存在することを確認してください。C:\Some\Path o\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 に移行する方法を知っている人はいますか?
解決
VS 2013の下でVS 2010ソリューションを構築しようとすると同じ問題がありました。修正プログラムは、最初にソリューションファイルをVS 2013にアップグレードすることでした。その後、さらなる変更なしにうまくいきました。
他のヒント
コピーしたばかりです SqlServer.targets
から C:\Windows\Microsoft.NET\Framework\v3.5
に C:\Program Files (x86)\MSBuild\12.0\Bin
そしてそれは役に立ちます。VS2013 で古いプロジェクトを開くことができるようになりました。
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:値 'データベース'はオプション 'target'の場合は無効です)
これが助けに役立つことを願っています!
私は同じ問題を抱えていました、そしてこのように解決しました: 次のコンテンツを使用して、 ' sqlserver.targets ' 'on' 'on' 'on' 'on' 'のファイルを作成するだけです:
<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>
.
頑張ってください。
Windows 10
で古いプロジェクトを開くときにも発生する可能性があります。私は、Windows 10上のVisual Studio 2010で古いSQL Server CLRアセンブリを開くときに同じ問題を示しました(SQLSERVER.TARGETSが見つかりませんでした)。/ P>
同じプロジェクトが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」でした。
これらの溶液のいくつかから生じる誤差
私は特定の質問を投稿しました( c#vs 2013エラー02019:/ターゲットのターゲットタイプが無効です: 'exe'、 'winexe'、 'library'、 'module'、 'appcontainerexe'または 'winmdobj' csc )を指定する必要があります。 Vladimir Dronovの回答の下のChris Torngによって記述された致命的なビルドエラー:
エラー1 02019:/ターゲットのターゲットタイプが無効です: 'exe'、 'winexe'、 'library'、 'module'、 'appcontainerexe'または 'winmdobj' csc
を指定する必要があります。
修正
このフォーラムのアドバイスに従って、VS2013 Community EditionのSQL Server Devツール互換性の問題に関するエラーを取り除くことができました。
https://connect.microsoft.com/sqlserver/feedbackdetail/view/979839.
Bscliftonによって投稿された7:18 am
この問題は、コミュニティ2013版でもありました。 Tools-> ExtensionsおよびUpdationおよびUpdationおよびUpdationおよびUpdationの更新:問題を解決しました:)
これがあなたのためにうまくいかない場合は、問題を解決する方法のための他のいくつかのアイデアを提供するので、そのフォーラムをチェックアウトすることをお勧めします
溶液1:
プロジェクトが.csprojファイルの場合は、アップグレード中にVisual Studioも.sqlprojファイルを生成したかどうかを確認してください。そうである場合は、代わりにその解決策に追加できます。
溶液2:
.sqlprojファイルの次の行を変更することができます。
<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />
.
<Import Project="$(MSBuildBinPath)\SqlServer.targets" />
.