ডুপ্লিকেট এসেম্বলি ভার্সন অ্যাট্রিবিউট


147

আমার একটি প্রকল্প রয়েছে যা সংকলনের ক্ষেত্রে নিম্নলিখিত ত্রুটি উত্পন্ন করে:

ত্রুটি CS0579: সদৃশ 'এসেম্বলি ভার্সন' বৈশিষ্ট্য

আমি ফাইলটি যাচাই করেছি AssemblyInfo.csএবং দেখে মনে হচ্ছে সেখানে কোনও সদৃশ নেই।

আমি এমএসডিএন-তে এই নিবন্ধটি পেয়েছি যা একই ধরণের সমস্যার সমাধান করে এবং এই নিবন্ধের পরামর্শ অনুসরণ করে সমস্যাটিও ঠিক করে দেয়।

কেউ কি বলতে পারেন এখানে কী চলছে? ক্লাসগুলির একই নাম সহ কেবল দুটি বা ততোধিক প্রকল্প থাকার ক্ষেত্রে কি এটি ঘটবে? নাকি এটা অন্য কিছু?


কেবল একটি অনুমান তবে, আপনি কি চেষ্টা করেছিলেন কাছাকাছি এবং সমাধানটি আবার খোলা? সম্ভবত এটি সমাধান করতে পারে?
স্টেফ্টো

4
যদি কোনও প্রকল্প। নেট কোরে রূপান্তর করা হয়, দেখুন elanderson.net/2017/06/…
মাইকেল ফ্রেইজিম

আমি ম্যাকের উপর ভিজ্যুয়াল স্টুডিও 2017 সম্প্রদায় সংস্করণটি ব্যবহার করছি। আমার একটি কনসোল অ্যাপ্লিকেশন ছিল এবং তারপরে আমি একটি নতুন শ্রেণীর গ্রন্থাগার প্রকল্পের জন্য একটি রেফারেন্স যুক্ত করেছি। এই ত্রুটিগুলি দেখানো শুরু হয়েছিল যখন আমি কোনও বিল্ড তৈরি করি। আমি যা করেছি তা হ'ল ক্লাস লাইব্রেরি প্রকল্পের রেফারেন্সটি সরিয়ে ফেলা হয়েছিল এবং তারপরে এটি আবার যুক্ত করা হয়েছিল এবং ত্রুটিগুলি চলে গেছে।
ফ্লাইয়া

উত্তর:


126

আমি অতীতেও এই সমস্যাটিতে চলে এসেছি, তাই আমি ধরে নিতে চলেছি যে আপনার বিল্ড প্রক্রিয়াটি ভার্সন সরবরাহ করার জন্য পৃথকভাবে সমাবেশ সম্পর্কিত তথ্য সরবরাহ করে। এবং এটির একটি অনুলিপিকরণ কারণ আপনার প্রকল্পের AssemblyInfo.csফাইলটিতে সেই তথ্য আছে । সুতরাং ফাইলটি সরান এবং আমি মনে করি এটি কাজ করা উচিত।


3
সুতরাং, বিল্ডিং প্রক্রিয়াটি নতুন এন্ট্রি তৈরির পরিবর্তে বিদ্যমান এসেম্বলি ভার্সনটিকে ওভাররাইট করা উচিত নয়? আমি জানি যে আমাদের বিল্ড প্রক্রিয়াটি এটি করে তবে আমি কৌতূহল যে কেন এটি বিদ্যমানটিকে ওভাররাইট করে না। এটি খারাপভাবে প্রয়োগ করা হয়েছে বা এটি একটি সীমাবদ্ধতা?
আমির

আমি মনে করি। নেট অ্যাসেমব্লির জন্য সংস্করণ ইঞ্জেকশন পদ্ধতিটি ব্যবহার করা সবচেয়ে ভাল উপায়। তবে একটি বিচ্ছিন্ন গল্প আছে। আপনার ক্ষেত্রে সমস্যাটি রয়েছে সেন্টিমিডলাইন বিল্ড প্যারামিটারগুলির মাধ্যমে এবং এসেম্বলিআইএনএফ.সি.এস এর মাধ্যমে অ্যাসেম্বলি সংস্করণ সরবরাহের বিভিন্ন উপায় এবং আপনাকে নিশ্চিত করতে হবে যে কেবলমাত্র একটি পদ্ধতি গুণাবলীর সদৃশ হিসাবে ব্যবহৃত হচ্ছে এটি একটি নেট সংকলন ত্রুটি।
লুচি

ঠিক কি সরান?
রবার্তো টমস

193

ভিজ্যুয়াল স্টুডিও 2017 থেকে শুরু করে AssemblyInfo.csফাইলটি ব্যবহার চালিয়ে যাওয়ার আরও একটি সমাধান হ'ল স্বয়ংক্রিয়ভাবে সমাবেশ সম্পর্কিত তথ্য উত্সাহ বন্ধ করে দেওয়া:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
</Project>

NET ফ্রেমওয়ার্ক এবং। নেট স্ট্যান্ডার্ড উভয়কেই সমর্থন করা দরকার এমন প্রকল্পগুলির জন্য আমি ব্যক্তিগতভাবে এটিকে খুব দরকারী বলে মনে করি।


4
হ্যাঁ এটি আমার পক্ষে কাজ করেছে, আপত্তি এবং বিন ফোল্ডারগুলি মোছা যথেষ্ট ছিল না।
নিক জোসেভস্কি

দুর্ভাগ্যবশত, প্রত্যেক সময় আমি পরিবর্তন .csprojফাইলটি তার সম্পত্তি পৃষ্ঠা (অ্যাপ্লিকেশন, সংগ্রহ করতে, ঘটনাবলী বিল্ড, ইত্যাদি), ব্যবহার PropertyGroupসঙ্গে GenerateAssemblyInfoঅদৃশ্য :-(
পালো Mraz

3
এটি একটি ডিরেক্টরিতে সরান।
ব্রায়ান

2
এই সমাধানের সাথে কি কোনও ঝুঁকি বা নেতিবাচক ফলাফল সম্ভব?
mrcoulson

আমার সমস্যা পুরোপুরি স্থির!
ড্যানিয়েল ম্যাকলিয়ান

19

আমারও একই ত্রুটি ছিল এবং এটি অ্যাসেম্বলি ভেরিওন এবং অ্যাসেম্বলি ফাইল সংস্করণটিকে আন্ডারলাইন করছিল তাই লুচি উত্তরটি পড়ে আমি কেবল তাদের মন্তব্য হিসাবে যুক্ত করেছি এবং ত্রুটিটি সমাধান করা হয়েছিল

// AssemblyVersion is the CLR version. Change this only when making breaking    changes
//[assembly: AssemblyVersion("3.1.*")]
// AssemblyFileVersion should ideally be changed with each build, and should help identify the origin of a build
//[assembly: AssemblyFileVersion("3.1.0.0")]

আমি এটি চেষ্টা করেছিলাম, এবং এটি আমার ক্ষেত্রে কিছুই পরিবর্তিত হয়নি :-(
গার্টসেন

18

কোনও পুরানো প্রকল্পটি। নেট কোরে রূপান্তর করার সময়, এসেম্বলিআইএনফো-সি-তে থাকা বেশিরভাগ তথ্য এখন প্রকল্পের মধ্যেই সেট করা যেতে পারে। প্রকল্পের বৈশিষ্ট্যগুলি খুলুন এবং নতুন সেটিংস দেখতে প্যাকেজ ট্যাবটি নির্বাচন করুন।

এরিক এল এন্ডারসন এর পোস্ট "ডুপ্লিকেট 'System.Reflection.AssemblyCompanyAttribute' অ্যাট্রিবিউট" বর্ণনা করে 3 বিকল্পগুলি:

  • বিধানসভা আইটেমগুলি এসেম্বলিআইএনফো ফাইল থেকে সরান,
  • ফাইলটি পুরোপুরি মুছুন বা
  • জেনারেটঅ্যাসাউজআইএনফো অক্ষম করুন ( সার্জ সেমেনভের অন্য উত্তরে প্রস্তাবিত হিসাবে )

প্রকল্পে এই বৈশিষ্ট্যগুলি নির্দিষ্ট করতে আমি আরও স্বজ্ঞাত এবং আরও "ভিজ্যুয়াল স্টুডিও" পেয়েছি ( .csproj), কারণ এগুলি প্রকৃত যুক্তি বর্ণনা করে এমন কোডের পরিবর্তে মেটাডেটা। আমি আশা করি ভবিষ্যতে সমস্ত কিছু প্রকল্পে নির্দিষ্ট করা যেতে পারে! (বর্তমানে আমি COM দৃশ্যমানতা নির্দিষ্ট করতে পারছি না, তাই আমি এটিকে রেখে দিই AssemblyInfo.cs))
ফ্রাঙ্কলিন ইউ

9

আমার ক্ষেত্রে, সংকলনের সময় উত্পন্ন কিছু অস্থায়ী * .cs ফাইলগুলি দুর্ঘটনাক্রমে প্রকল্পে যুক্ত হয়েছিল।

ফাইলগুলি obj\Debugডিরেক্টরি থেকে ছিল , সুতরাং সেগুলি অবশ্যই সমাধানে যুক্ত করা উচিত হয়নি। একটি *.csওয়াইল্ডকার্ড কিছুটা পাগল হয়ে গিয়েছিল এবং সেগুলি ভুলভাবে যুক্ত করেছে।

এই ফাইলগুলি মুছে ফেলা সমস্যার সমাধান করে।


9

আমার ক্ষেত্রে, সেখানে যেখানে একটি প্রকল্পের একটি সাবফোল্ডার যা নিজেই একটি প্রকল্প ফোল্ডার ছিল:

  • নথি ব্যবস্থা:

    • C: \ প্রকল্প \ webapi \ wepapi.csproj
    • C: \ প্রকল্প \ webapi \ পরীক্ষার \ wepapitests.csproj
  • সমাধান

    • ওয়েবপি (ফোল্ডার এবং প্রকল্প)
      • পরীক্ষা (ফোল্ডার)
    • পরীক্ষা (ফোল্ডার এবং প্রকল্প)

তারপরে আমাকে "ওয়েবপিপি" প্রকল্প থেকে সাবফোল্ডার "টেস্টগুলি" সরিয়ে ফেলতে হয়েছিল।


4

আমার জন্য এটি ছিল যে এসেম্বিআইএনফো.সি এবং সলিউশনআইএনফো-সি-এর আলাদা আলাদা মান ছিল। সুতরাং এই ফাইলগুলিও পরীক্ষা করে দেখুন। আমি তাদের মধ্যে থেকে একটি সংস্করণ সরিয়েছি।


3

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


একইভাবে, আমার অন্য .csproj (বি) এর সাথে যুক্ত অন্য ফোল্ডারের ভিতরে একটি .csproj ফাইল (এ) ছিল।
taylorswiftfan

2

আমি যদি ভিজ্যুয়াল স্টুডিও 2017-তে প্রকল্পটি সংকলন করি তবে এটি সাধারণত আমার হয়ে থাকে এবং তারপরে আমি কমান্ড লাইন কমান্ড "ডটনেট রান" দিয়ে NET কোর দিয়ে এটি পুনর্নির্মাণ এবং চালানোর চেষ্টা করি।

"ক্লায়েন্ট অ্যাপ" এর ভিতরে এবং সরাসরি প্রকল্প ফোল্ডারে উভয়ই "বিন" এবং "আপত্তি" ফোল্ডারগুলি কেবল মুছে ফেলার ফলে .NET কোর কমান্ড "ডটনেট রান" পুনরায় নির্মাণ ও সফলভাবে চালানোর অনুমতি দেয় allowed


2

এখানে প্রকল্পটিতে অবশ্যই একটি अस্যামিলিআইএনফো ফাইল থাকতে হবে: এখানে চিত্র বর্ণনা লিখুন

সমাধানের জন্য: - যে কোনও একটি এসেম্বলিআইএনফো মুছুন


1

ভিএস ২০১7 to-এ কোর আপগ্রেড করার পরে আর একটি সমাধান হ'ল বৈশিষ্ট্যগুলি \ এসেম্বলইনফোস ফাইলগুলিতে মুছে ফেলা।

যেহেতু তারা এখন প্রকল্পে সঞ্চিত আছে।


1

আমি এই উত্তরটি এমএসডিএন-তে পেয়েছি, যা ফাইলটিকে বিষয়বস্তু হিসাবে চিহ্নিত করা এবং তারপরে আউটপুট = যদি আরও নতুন হয় তবে অনুলিপি করে explains নীচের নিবন্ধটি দেখুন:

https://social.msdn.microsoft.com/Forums/en-US/8671bdff-9b16-4b49-ba9e-227cc4df31b2/compile-error-cs0579-duplicate-assemblyversion-attribute?forum=vsgatk

জি এইচ


1

এসেম্বলিআইএনফো-সি-তে আমার সংস্করণ আপডেট করার জন্য গিটভার্সন সরঞ্জাম যুক্ত করার চেষ্টা করার সময় আমি একই বিষয়টি উপস্থিত হয়েছি। VS2017 এবং .NET কোর প্রকল্পটি ব্যবহার করুন। সুতরাং আমি উভয় বিশ্বের মিশ্রিত। আমার এসেম্বলিআইএনফো.সিএসগুলিতে কেবল সংস্করণ তথ্য রয়েছে যা গিটভার্সন সরঞ্জাম দ্বারা উত্পাদিত হয়েছিল, আমার সিএসপোজে বাকি জিনিস রয়েছে। দয়া করে নোট করুন আমি ব্যবহার <GenerateAssemblyInfo>false</GenerateAssemblyInfo>করি না আমি কেবল সংস্করণ সম্পর্কিত বৈশিষ্ট্য ব্যবহার করি (নীচে দেখুন)। আরও বিশদ এখানে এসেম্বলআইনফো বৈশিষ্ট্য

AssemblyInfo.cs

[assembly: AssemblyVersion("0.2.1.0")]
[assembly: AssemblyFileVersion("0.2.1.0")]
[assembly: AssemblyInformationalVersion("0.2.1+13.Branch.master.Sha.119c35af0f529e92e0f75a5e6d8373912d457818")]

my.csproj এ সমস্ত সমাবেশ অন্যান্য বৈশিষ্ট্য সম্পর্কিত রয়েছে:

<PropertyGroup>
...
<Company>SOME Company </Company>
<Authors>Some Authors</Authors>
<Product>SOME Product</Product>
...
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute><GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>

প্রকল্পের বৈশিষ্ট্যগুলিতে প্যাকেজ ট্যাবে সিএসপ্রোজ মানচিত্র


1

আমার সমস্যাটি যখন আমার মূল প্রকল্পটি সমাধান হিসাবে একই ফোল্ডারে ছিল, তখন আমার একটি সাব ফোল্ডারে অবস্থিত একই সমাধানে একটি পৃথক প্রকল্প ছিল এবং সেই পৃথক প্রকল্পটি মূল প্রকল্পটিকে একটি রেফারেন্স হিসাবে ব্যবহার করেছিল। এর ফলে মূল প্রকল্পটি সাব ফোল্ডার বিন এবং অবজেক্ট ফোল্ডারগুলি সনাক্ত করতে সক্ষম করেছে যা সদৃশ উল্লেখ তৈরি করেছে।


এটি আমাকে অনেক সাহায্য করেছে! একটি প্রকল্প অন্যটিকে বিল্ড-টাইম নির্ভরতা হিসাবে উল্লেখ করে, কিন্তু সিএসপোজে একটি বাগের ফলে এই ত্রুটিটি উত্পন্ন করে ওজেক্ট ফোল্ডারগুলি আলাদা হয়ে যায়।
চাদ জেসুপ

0

আমার ত্রুটিটি ছিল যে আমি আমার প্রকল্পের অন্য একটি ফাইলও উল্লেখ করছি, যা "এসেম্বলিভিশন" বৈশিষ্ট্যটির জন্য একটি মানও ছিল। আমি ফাইলটির একটি থেকে সেই বৈশিষ্ট্যটি সরিয়েছি এবং এটি এখন সঠিকভাবে কাজ করছে।

কীটি আপনার প্রকল্পের কোনও ফাইলের মধ্যে এই মানটি একাধিকবার ঘোষিত না হয় তা নিশ্চিত করা।


0

আপনাকে এসেম্বলিআইএনফো কোডগুলি এবং # আইফোন!

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.

#if !NETCOREAPP3_0  

[assembly: AssemblyTitle(".Net Core Testing")]
[assembly: AssemblyDescription(".Net Core")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct(".Net Core")]
[assembly: AssemblyCopyright("Copyright ©")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("000b119c-2445-4977-8604-d7a736003d34")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

#endif

0

আমি যখন একই ডিরেক্টরিতে 2 টি প্রকল্প রেখেছিলাম তখন আমি এই ত্রুটিটি পেয়েছি। সমাধানের সাথে আমার যদি ডিরেক্টরি থাকে এবং আমি এটিতে একটি পৃথক ওয়েব এবং ডেটা ডিরেক্টরি রেখে দিই।


0

আপনার যদি অ্যাজুর ডিভোপসে বিল্ড পাইপলাইনে সমস্যা হয়, বিল্ড অ্যাকশনটিকে "সামগ্রী" হিসাবে রাখার চেষ্টা করুন এবং আউটপুট ডিরেক্টরিতে অনুলিপি করুন "নতুন যদি অনুলিপি করুন" সমান এসেম্বলিআইএনফো ফাইলের বৈশিষ্ট্যগুলিতে।


0
obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(15,12): error CS0579: Duplicate 'System.Reflection.AssemblyConfigurationAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj]
obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(16,12): error CS0579: Duplicate 'System.Reflection.AssemblyFileVersionAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj]
obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(17,12): error CS0579: Duplicate 'System.Reflection.AssemblyInformationalVersionAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj]
obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(18,12): error CS0579: Duplicate 'System.Reflection.AssemblyProductAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj]
obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(19,12): error CS0579: Duplicate 'System.Reflection.AssemblyTitleAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj]
obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(20,12): error CS0579: Duplicate 'System.Reflection.AssemblyVersionAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj]

আমি বিশ্বাস করি যে আমার লাইব্রেরি ফোল্ডারটি অন্য শ্রেণীর লাইব্রেরির অজান্তেই সৃষ্টির দ্বারা দূষিত হয়েছিল I আমি লাইব্রেরিটিকে একটি সম্পর্কিত সমস্ত ফাইল মুছে ফেলেছিলাম তবে সমস্যাটি থেকেই যায়। আমি ডিরেক্টরিতে সমস্ত বিন এবং আপত্তি ফোল্ডারগুলি মুছে ফেলার মাধ্যমে একটি কাজ পেয়েছি। বিল্ডটি আগে ঠিক ছিল তবে এমন একটি সাবফোল্ডার খুঁজে পাওয়া গেছে যা একই অ্যাসেমব্লিনফো সি.এস. ফাইল ছিল।


0

এই সমস্যাটি একটি রেফারেন্স দ্বন্দ্ব যা বেশিরভাগ ভিএস 2017 এর জন্য অদ্ভুত।

আমি এই একই ত্রুটিটি কেবল Assembly -14 এর পাশাপাশি লাইনগুলি অ্যাসেম্বলিআইএনফোস পৃষ্ঠাগুলির নীচের অংশে বিধানসভা সংস্করণ কোডগুলি মন্তব্য করে সমাধান করেছি

এটি সমস্ত সদৃশ রেফারেন্স সরিয়ে দিয়েছে এবং প্রকল্পটি আবার তৈরি করতে সক্ষম হয়েছিল।

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