الاختلافات بين البناء على جهاز مع تثبيت VS2010 وعلى جهاز مع تثبيت 7.1 SDK

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

  •  27-09-2019
  •  | 
  •  

سؤال

نحن نحاول ترقية قاعدة التعليمات البرمجية الخاصة بنا لاستخدام Visual Studio 2010 ولكننا نواجه مشاكل في الحصول على كل شيء على خوادم البناء لدينا. لا نريد تثبيت Visual Studio 2010 على خوادم البناء الخاصة بنا ، وبالتالي قمنا بتثبيت إطار .NET 4 فقط و SDK (V7.1).

ما زلنا نرغب في استهداف منصة .NET 3.5 (سنقوم بالترقية إلى .NET 4 في مرحلة ما في المستقبل ولكننا لا نريد حتى الآن).

لقد تمكنا من الحصول على الرمز لتجميع ، لكننا الآن نواجه أخطاء وقت التشغيل مثل ما يلي.

Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

المشكلة هي أن وقت التشغيل يحاول إلغاء تخصيص المورد المدمج ، وإذا نظرت إلى الموارد الموجودة في العاكس ، أرى أنها جميعها .NET 4.0 كائنات. على سبيل المثال ، رمز تطبيق Windows الخاص بنا من النوع System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.

لذلك يبدو أن MSBuild يقوم بتجميع الموارد بشكل غير صحيح (باستخدام وقت تشغيل مختلف للهدف)؟ لقد أكدت ذلك من خلال النظر إلى فرق DLL المدمجة على جهاز DEV الخاص بي والتي تم تصميمها على خادم البناء - من الواضح أن نرى أن موارد DLL تستخدم 2.0.0.0 والآخر (من خادم البناء) يستخدم 4.0 .0.0. مراجع المشروع هي إلى V2.0.0.0 DLLs في كلتا الحالتين (كما يتوقع المرء).

هل لدى أي شخص أي فكرة عن سبب قيام MSBuild بتجميع الموارد ككائنات 4.0؟

شكرا لك مقدما.

كريس

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

المحلول

عندما قمت بترقية الحل الخاص بك إلى VS2010 ، هل قمت بتغيير الإطار المستهدف؟ يمكنك البحث عنها من خلال عرض ملفات CSPROJ في محرر نصوص. هل لديك إطار 7.0A في خادم البناء الخاص بك؟

تعديل :

واجهت نفس المشكلة منذ فترة ولأنها لا علاقة لها بمفتاح التسجيل الذي لم يتم تعيينه. ألقِ نظرة هنا:http://connect.microsoft.com/visualstudio/feedback/details/594338/tfs-2010-build-agent-and-windows-7-1-sdk-targeting-net-3-5-generates-wrong-embedd- مصادر

أعتقد أنك بحاجة إلى إضافة مفتاح التسجيل يدويًا HKLM\Software\Microsoft\MsBuild\ToolsVersions\SDK35ToolsPath

نصائح أخرى

لست متأكدًا مما إذا كان هذا يساعد ولكن رؤية هذا الرابط بخصوص مهمة Framework35Sp1Sembly.

http://msdn.microsoft.com/en-us/library/ff598689.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top