فشل تحميل المشروع بسبب فقدان ملف SqlServer.targets بعد الترقية إلى Visual Studio 2013

StackOverflow https://stackoverflow.com//questions/20006482

سؤال

بعد الترقية إلى 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 أصبح جزءًا من Visual Studio، بدلاً من كونه جزءًا من .Net Framework.

هل يعرف أحد كيفية حل هذه المشكلة وترحيل هذا المشروع إلى Visual Studio 2013؟

هل كانت مفيدة؟

المحلول

واجهت نفس المشكلة عند محاولة إنشاء حل VS 2010 ضمن VS 2013.كان الإصلاح هو ترقية ملف الحل إلى VS 2013 أولاً.وبعد ذلك عملت دون مزيد من التعديلات.

نصائح أخرى

مجرد نسخ SqlServer.targets من C:\Windows\Microsoft.NET\Framework\v3.5 ل C:\Program Files (x86)\MSBuild\12.0\Bin وهذا يساعد.VS2013 قادر الآن على فتح المشروع القديم.

واجهت مشكلة مماثلة عند الترقية من Visual Studio 2008 إلى 2013.استغرق الأمر بعض الوقت ولكن كان علي تثبيت SSDT لـ VS 2013 (مرة أخرى)، ثم قمت بإنشاء مشروع قاعدة بيانات جديد لمعرفة المسار النسبي لملف 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:قيمة "قاعدة البيانات" غير صالحة للخيار "الهدف")

أتمنى أن يساعدك هذا!

كان عندي نفس المشكلة وحليتها بهذه الطريقة:فقط قم بإنشاء ملف باسم "SQLServer.targets' على 'C:\Windows\Microsoft.NET\Framework\v4.0.30319"بالمحتوى التالي:

<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

واجهت نفس المشكلة (لم يتم العثور على SqlServer.targets) عند فتح مجموعة SQL Server CLR قديمة في Visual Studio 2010 على نظام التشغيل Windows 10، نفس الإصدار المستخدم في الأصل لكتابة التجميع.

تم التأكد من أن نفس المشروع قد تم فتحه بشكل جيد في Visual Studio 2010 على جهاز كمبيوتر يعمل بنظام Windows 7.

حل

انتبه إلى رسالة الخطأ.في حالتي كان:

لم يتم العثور على المشروع المستورد "C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets".تأكد من صحة المسار الموجود في الإعلان، ومن وجود الملف على القرص.

ما عليك سوى نسخ SqlServer.targets من الموقع المشار إليه في إجابة فلاديمير درونوف، "C:\Windows\Microsoft.NET\Framework\v3.5\SqlServer.targets"، إلى الدليل المشار إليه في رسالة الخطأ.

في حالتي كان ذلك "C:\Windows\Microsoft.NET\Framework\v4.0.30319\".

الخطأ الناتج عن العديد من هذه الحلول

لقد نشرت سؤالا محددا (خطأ C # VS 2013 02019:نوع الهدف غير صالح لـ /target:يجب تحديد "exe" أو "winexe" أو "library" أو "module" أو "appcontainerexe" أو "winmdobj" CSC) فيما يتعلق بخطأ البناء الفادح الذي وصفه كريس تورنج أسفل إجابة فلاديمير درونوف:

خطأ 1 02019:نوع الهدف غير صالح لـ /target:يجب تحديد "exe" أو "winexe" أو "library" أو "module" أو "appcontainerexe" أو "winmdobj" CSC


المأزق

تمكنت من التخلص من الخطأ المتعلق بمشكلات توافق أداة تطوير SQL Server في VS2013 Community Edition باتباع النصائح الواردة في هذا المنتدى:

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

أرسلت بواسطة bsclifton في 15/11/2014 الساعة 7:18 صباحًا

واجهت هذه المشكلة أيضًا مع إصدار Community 2013؛يؤدي الانتقال إلى الأدوات->الامتدادات والتحديثات وتحديث "Microsoft SQL Server Update لأدوات قاعدة البيانات" إلى حل المشكلة :)

إذا لم ينجح هذا الأمر بالنسبة لك، فإنني أوصي بمراجعة هذا المنتدى لأنه يقدم العديد من الأفكار الأخرى حول كيفية حل المشكلة

الحل 1:

إذا كان المشروع عبارة عن ملف ‎.csproj، فيجب عليك التحقق مما إذا كان Visual Studio قد قام أيضًا بإنشاء ملف ‎.sqlproj أثناء الترقية.إذا كان الأمر كذلك، يمكنك إضافة ذلك إلى الحل بدلاً من ذلك.

الحل 2:

يمكنك محاولة تغيير السطر التالي في ملف .sqlproj:

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

ل

<Import Project="$(MSBuildBinPath)\SqlServer.targets" />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top