يجب صافي ربط المشاريع أي وحدة المعالجة المركزية "إلى إطار أو دلس Framework64؟

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

سؤال

ولدي مشروع Visual Studio C # (.csproj) الذي يحتوي على إشارة إلى إصدار Framework64 من System.Data. عندما أحاول بناء باستخدام MSBuild / <لأ href = "HTTP: //en.wikipedia كافيه / ويكي / Team_Foundation_Server "يختلط =" نوفولو noreferrer "> فريق مؤسسة خادم (TFS) على جهاز آخر، فإنه فشل كما لم يكن موجودا DLL 64 بت.

هل يجب ربط إلى إصدار الإطار، أو أن هذا تحد لي عند تشغيل على أجهزة 64 بت؟ لا. NET توجيه ملزم لاستخدام 64 بت عندما يكون ذلك ممكنا؟

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

المحلول

وأعتقد تقصد <م> أي وحدة المعالجة المركزية في سؤالك، صحيح؟ على افتراض أن هذا هو الحال، ملزمة بغض النظر عن bitness هو الطريق للذهاب في كل ما يقرب من الظروف.

ونذكر أن شفرة . NET هو <وأ href = "HTTP: // EN .wikipedia.org / ويكي / فقط في time_compilation "يختلط =" نوفولو noreferrer "> JITed (وفقط في الوقت تجميع) - يعني 32 بت و 64 بت كود للخروج من C # أو <وأ href =" http://en.wikipedia.org/wiki/Visual_Basic_.NET "يختلط =" نوفولو noreferrer "> VB.NET المترجم هو نفسه بغض النظر عن العمارة كنت تخطط لتشغيل. عند JITed رمز وقت، وذلك عندما يصبح 32 أو 64 بت.

في بعض الحالات، لديك إلى الأذهان العمارة المستهدفة. أن حالة واحدة محددة تكون أية مراجع / التبعيات على COM -wrapper دلس، الإطار الصافي توفيره أو غير ذلك. هذا هو أن هذه الملفات DLL سيتم وضع علامة (في حالة COM) إلى 32 بت فقط (كما هو COM 32 بت العمارة فقط) إذا لم تكن وضعت 32 بت، لن إمكانية التشغيل المتداخل لCOM وظيفة. لذلك، حيث يتم وضع علامة صراحة، يجب أن تكون مخرجات المشروع الخاص بك أيضا.

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