মিশ্র মোড সমাবেশটি রানটাইমের সংস্করণ 'v2.0.50727 7 এর বিপরীতে নির্মিত


163

আমি নিম্নলিখিত ব্যতিক্রম পাচ্ছি:

মিশ্র মোড সমাবেশটি রানটাইমের সংস্করণ 'v2.0.50727 against এর বিপরীতে নির্মিত এবং অতিরিক্ত কনফিগারেশন তথ্য ছাড়া 4.0 রানটাইমে লোড করা যায় না।

যেহেতু আমি আমার ডাব্লুপিএফ প্রোগ্রাম থেকে স্ফটিক প্রতিবেদন রফতানি করার চেষ্টা করছিলাম ...

আমি ইতিমধ্যে app.config এ নিম্নলিখিতগুলি যুক্ত করেছি ...

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
  <NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>

কোন বিশেষজ্ঞ সাহায্য করতে পারেন ????

রেফারেন্সটি আমি পেয়েছি: http://www.davidmoore.info/2010/12/17/running-net-2-runtime-applications-under-the-net-4-runtime


1
গুরুত্বপূর্ণ: ত্রুটি হিসাবে ত্রুটি কলাম "ফাইল" যদি সেটা হয় SGEN, তাহলে ফিক্স চাহিদা একটি ফাইলে হতে sgen.exe.configপাশে sgen.exe। উদাহরণস্বরূপ, ভিএস 2015 এর জন্য তৈরি করুন C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe.config। উত্স: এসজিইএন মিশ্র মোড সমাবেশ ন্যূনতম ফাইল সামগ্রী:<configuration><startup useLegacyV2RuntimeActivationPolicy="true"/></configuration>
টুলমেকারস্টেভ

1
সচেতন থাকুন যে আপনার কাছে কেবল "সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এসডিকে \ উইন্ডোজ \ v10.0A ET বিন \ নেটফেক্স 4.6 সরঞ্জাম \" থাকতে পারে না, তবে এর অধীনে একটি 'x64' ডিরেক্টরিতেও রয়েছে যার একটি সিগান রয়েছে। উদাহরণ, আপনি সম্ভবত ভিএস এর কতগুলি এবং কোন সংস্করণ ইনস্টল করেছেন তার উপর নির্ভর করে বিভিন্ন পাথে সিগনের অন্যান্য কয়েকটি অনুলিপি / সংস্করণ সম্ভবত।
মিকিফএগেইন_পূর্বেএক্সিটঅফএসও

@ টলমেকারস্টেটিভ দয়া করে উত্তর হিসাবে আপনার মন্তব্য পোস্ট করুন যাতে আমি এটি আপভোট করতে পারি; অন্য উত্তরগুলির কোনওটিই আমাকে সাহায্য করেনি।
ম্যালকম

উত্তর:


237

কনফিগারেশন নোডের অধীনে আপনার app.config এ এই সঠিক স্টার্টআপ ট্যাগটি ব্যবহার করার চেষ্টা করুন

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    <requiredRuntime version="v4.0.20506" />
  </startup>

2
আসলে আপনার কৌতুকপূর্ণ রেখাগুলি আপনার অ্যাপ্লিকেশনটিতে যুক্ত করা উচিত * ** উদাহরণ ** কনফিগারেশন।
আন্তোনকে

24
তা হ'ল app.config। সংকলক এটি নির্মাণের পরে পুনরায় নামকরণ করবে।
জেফ

65
শুধুমাত্র অংশটি প্রয়োজন যা ইউজেলজিভি 2 রুনটাইমঅ্যাক্টিভেশনপলিসি = "সত্য"। আপনি আপনার বর্তমান ফ্রেমওয়ার্ক সংস্করণটি ছেড়ে যেতে পারেন।
বেন গ্রিপকা

3
বেন যখন বলে তখন আমি দ্বিগুণ করতে পারি, আমি অতিরিক্ত প্রয়োজনীয় রুনটাইমটি ছেড়ে দিয়েছি এবং আমার সমস্যাটি চলে গেছে।
মাইক ম্যাল্টার

1
: এই লিঙ্ক এছাড়াও সাহায্য করা উচিত তা বুঝতে সমস্যা হয়, এবং কি সমাধান আপনার জন্য কাজ করা হয় msdn.microsoft.com/en-us/magazine/ee819091.aspx
Mouhammed Soueidane

85

ব্যতিক্রমটি কিছু .NET 2.0.50727 উপাদান পরিষ্কারভাবে চিহ্নিত করে। নেট 4.0 এ অন্তর্ভুক্ত করা হয়েছিল। App.config ফাইলে এটি ব্যবহার করুন:

<startup useLegacyV2RuntimeActivationPolicy="true" /> 

এটি আমার সমস্যার সমাধান করেছে


এটির একটি ক্লোজিং স্ল্যাশ দরকার<startup useLegacyV2RuntimeActivationPolicy="true" />
জন

8

দয়া করে আপনার অ্যাপ্লিকেশনগুলির অ্যাপ্লিকেশন কনফিগ ফাইলটিতে বৈশিষ্ট্যটি ব্যবহার লেগ্যাসিভি 2 রুনটাইমঅ্যাক্টিভেশনপলিসি = "সত্য" যুক্ত করুন।

পুরানো মান

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
  </startup>

নতুন মান

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
  </startup>

এটি আপনার সমস্যার সমাধান করবে।


এটি আপনার পক্ষে কাজ করে জেনে ভাল লাগল। আপনার মন্তব্যের জন্য ধন্যবাদ !
ব্রিজেশ কুমার ত্রিপাঠি

4

বিপরীত সমাধানের সাথে আমার আসলে এই অভিন্ন সমস্যা ছিল । আমি একটি নেট প্রকল্পটি .NET 4.0 এ আপগ্রেড করেছি এবং তারপরে .NET 3.5 এ ফিরে এসেছি। আমার প্রকল্পে অ্যাপকনফাইগের নিম্নলিখিতটি অবিরত ছিল যা উপরের ত্রুটিটিকে প্রশ্নবিদ্ধ করেছিল:

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

এর জন্য ত্রুটিটি সমাধান করার সমাধানটি এটিকে যথাযথ ২.০ রেফারেন্সে নিম্নরূপে ফিরিয়ে দেওয়া ছিল:

<startup>
  <supportedRuntime version="v2.0.50727"/>
</startup>

সুতরাং যদি কোনও ডাউনগ্রেড উপরের ত্রুটিটি উত্পন্ন করে, আপনার .NET ফ্রেমওয়ার্ক সমর্থিত সংস্করণটির ব্যাক আপ নিতে হতে পারে।


1

আমার জন্য এটি MSTest(VS2015) এর অধীনে ইউনিট পরীক্ষা চলাকালীন ছুড়ে দেওয়া হয়েছিল । যোগ করতে হয়েছিল

<startup useLegacyV2RuntimeActivationPolicy="true">
</startup>

ভিতরে

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TE.ProcessHost.Managed.exe.config

মিক্সড-মোড অ্যাসেমব্লিং এমএসটিস্ট ভিসি2015 এ ব্যর্থ


1

App.config থেকে উত্তরাধিকার সক্রিয় করা আমার পক্ষে কাজ করে না। অজানা কারণে, আমার অ্যাপ্লিকেশনটি ভি 2 রানটাইম নীতি সক্রিয় করছে না। আমি কাছাকাছি একটি কাজ পাওয়া এখানে

App.config থেকে উত্তরাধিকার সক্রিয় করা একটি প্রস্তাবিত পন্থা তবে কিছু ক্ষেত্রে এটি প্রত্যাশার মতো কাজ করে না। লিগ্যাসি ভি 2 নীতিটি জোর করতে আপনার মূল অ্যাপ্লিকেশনটির সাথে নিম্নলিখিত কোডটি ব্যবহার করুন:

public static class RuntimePolicyHelper
{
public static bool LegacyV2RuntimeEnabledSuccessfully { get; private set; }

static RuntimePolicyHelper()
{
    ICLRRuntimeInfo clrRuntimeInfo =
        (ICLRRuntimeInfo)RuntimeEnvironment.GetRuntimeInterfaceAsObject(
            Guid.Empty, 
            typeof(ICLRRuntimeInfo).GUID);
    try
    {
        clrRuntimeInfo.BindAsLegacyV2Runtime();
        LegacyV2RuntimeEnabledSuccessfully = true;
    }
    catch (COMException)
    {
        // This occurs with an HRESULT meaning 
        // "A different runtime was already bound to the legacy CLR version 2 activation policy."
        LegacyV2RuntimeEnabledSuccessfully = false;
    }
}

[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("BD39D1D2-BA2F-486A-89B0-B4B0CB466891")]
private interface ICLRRuntimeInfo
{
    void xGetVersionString();
    void xGetRuntimeDirectory();
    void xIsLoaded();
    void xIsLoadable();
    void xLoadErrorString();
    void xLoadLibrary();
    void xGetProcAddress();
    void xGetInterface();
    void xSetDefaultStartupFlags();
    void xGetDefaultStartupFlags();

    [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
    void BindAsLegacyV2Runtime();
}
}

1

অন্য কনফিগারেশন ফাইলটি ব্যবহার করার চেষ্টা করুন (এটি আপনার প্রকল্পের নয়) এবং রিস্টার্ট ভিজ্যুয়াল স্টুডিও:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.x86.exe.config
(32-bit)

অথবা

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.exe.config
(64-bit)

আমি এটিতে প্রসারিত করব, কারণ .configকোনও অ্যাপ্লিকেশনটিতে থাকা এবং সাধারণত অতিরিক্ত অ্যাপ্লিকেশন কনফিগারেশনের জন্য প্রয়োজনীয় নেটিভকে ছড়িয়ে দেওয়া ভাল সমাধান হতে পারে না।
এটকনওয়ে

3
ইউনিট পরীক্ষার জন্য, কনফিগারেশন পরিবর্তনটি অবশ্যই বনাম.এক্সেকিউশনজেন.ইক্স.টি.এক্স.সিএনফাইগ ফাইলে ঘটতে পারে কারণ যে পরীক্ষামূলক কোডটি আপনি পরীক্ষা করছেন তার মূল প্রক্রিয়া exec এই ইস্যুটি ভিজ্যুয়াল স্টুডিও 2012 এসপি 4-তে ঠিক করা হয়েছিল, তবে এটি এখনও আমার মেশিনে উপস্থিত রয়েছে।
ব্র্যান্ডন এস

(দ্রষ্টব্য, পরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনাকে ভিজ্যুয়াল স্টুডিও পুনরায় আরম্ভ করতে হবে না vs আপনার কেবলমাত্র বনামের কাজ শেষ করা উচিত * * প্রক্রিয়াগুলি কারণ আপনার ইউনিট পরীক্ষা শেষ হওয়ার পরেও এগুলি প্রায় স্থির থাকে))
ব্র্যান্ডন এস

এটিকে উত্সাহিত করার ফলে এটি আমাকে আসল জায়গায় নিয়ে যায় যেখানে আমাকে এটি পরিবর্তন করতে হয়েছিল।
জ্যানিস এস

1

যদি ত্রুটিটি SGEN হিসাবে ত্রুটি কলাম "ফাইল" দিয়ে ঘটে থাকে, তারপরে তার ঠিকঠাকটি কোনও ফাইলে থাকা sgen.exe.configদরকার sgen.exe। উদাহরণস্বরূপ, ভিএস 2015 এর জন্য তৈরি করুন C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe.config। ন্যূনতম ফাইল সামগ্রী:<configuration><startup useLegacyV2RuntimeActivationPolicy="true"/></configuration>

সূত্র: এসজিএন মিক্সড মোড অ্যাসেমব্লি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.