.NET এ আমার একটি সেটআপ প্রকল্প রয়েছে। আমি যখন প্রকল্পটি এবং অন্যান্য প্রকল্পগুলিকে সাবস্ট্রেশনে সংরক্ষণ করি তখন সেটআপ প্রকল্প আর কম্পাইল করে না। আমি ত্রুটি পেয়েছি "" প্রকল্পের নির্ভরতা আপডেট করতে অক্ষম।
.NET এ আমার একটি সেটআপ প্রকল্প রয়েছে। আমি যখন প্রকল্পটি এবং অন্যান্য প্রকল্পগুলিকে সাবস্ট্রেশনে সংরক্ষণ করি তখন সেটআপ প্রকল্প আর কম্পাইল করে না। আমি ত্রুটি পেয়েছি "" প্রকল্পের নির্ভরতা আপডেট করতে অক্ষম।
উত্তর:
এমএসডিএন এ নিয়ে একটি দীর্ঘ আলোচনার থ্রেড রয়েছে। দেখে মনে হচ্ছে অনেকগুলি সম্ভাব্য কারণ রয়েছে। মাইক্রোসফ্ট থেকে এই সমস্যার জন্য কয়েকটি লিঙ্ক আলোচনায় অন্তর্ভুক্ত রয়েছে। এখানে ভিএস2005 এর একটি হটফিক্স এবং এখানে ভিএস 2010 এর কার্যকারিতা রয়েছে।
ভিএস2010 বন্ধ করে এবং তারপরে এটি পুনরায় খোলার জন্য সর্বদা আমার জন্য কাজ করেছে :)
আমার একই সমস্যা ছিল, তবে উল্লিখিত রেজুলেশনের কোনওটিই আমার পক্ষে কাজ করে নি বলে মনে হয়। সেটআপ প্রকল্পটি পুনর্নির্মাণ কাজ করবে, তবে এটি একটি ব্যথা, যেহেতু আমরা 30+ প্রকল্পের প্রকল্পের আউটপুটগুলিকে অন্তর্ভুক্ত করি।
আমি যে জিনিসটি কাজ করতে পেয়েছি তা হ'ল @ মার্ক যা করেছে তার সাথে খুব মিল approach
সব ক্ষেত্রেই আমার একই ডেলের একাধিক উল্লেখ ছিল (এটি কীভাবে ঘটেছিল তা নিশ্চিত নয়)
সঠিক উল্লেখের উদাহরণ:
"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_11EC89A306FFB83A269ACC2BF8D8462B"
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
"AssemblyAsmDisplayName" = "8:Some.OrOther.Lib, Version=1.601.4042.16978, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_11EC89A306FFB83A269ACC2BF8D8462B"
{
"Name" = "8:Some.OrOther.Lib.dll"
"Attributes" = "3:512"
}
}
"SourcePath" = "8:Some.OrOther.Lib.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_79891234C744498C83755DDEA682F0BF"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
ভুল উল্লেখের উদাহরণ:
"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_11EC89A306FFB83A269ACC2BF8D8462B"
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
"AssemblyAsmDisplayName" = "8:Some.OrOther.Lib, Version=1.601.4042.16978, Culture=neutral, processorArchitecture=MSIL"
"ScatterAssemblies"
{
}
"SourcePath" = "8:Some.OrOther.Lib.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_79891234C744498C83755DDEA682F0BF"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
আমি একই "দুটি বা ততোধিক অবজেক্টের একই টার্গেট লোকেশন ('[টার্গেটডির] \ মাইআস্যাবুলেশন.ডিল')) পেয়েছি যে" মার্ক পেয়েছে ... তবে সেটআপ প্রকল্পটি সংকলন করে ঠিকঠাক হয়ে যায়।
File
সমাবেশ উল্লেখ মুছে ফেলা শেষ । নিখুঁতভাবে কাজ করেছেন।
ভিএস2010 এর হট-ফিক্সের জন্য সঠিক লিঙ্কটি হ'ল:
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30681
ইনস্টলেশন পরে সূক্ষ্ম কাজ করে
আমার অনুরূপ সমস্যা হয়েছিল এবং এমএসডিএন- এ এই দীর্ঘ এবং পুরানো আলোচনার একটি সমাধান খুঁজে পেয়েছি ।
ব্যবহারকারী 'জেফ হুনসেকার' বৃহস্পতিবার, 26 আগস্ট, 2010 5:51 প্রধানমন্ত্রী উত্তর দিয়েছেন (সরাসরি লিঙ্ক সম্ভব নয়):
ভিজ্যুয়াল স্টুডিও ২০০ Dep ডিপ্লোয়মেন্ট প্রজেক্টগুলিকে ভিএস ২০১০-তে উন্নীত করার সময় আমি কেবল এটির মুখোমুখি হয়েছি H হ্যানসের (উপরে) সমাধানটি আমার পক্ষে কাজ করেছে।
- নোটপ্যাডে .vdproj ফাইলটি সম্পাদনা করুন।
- "সোর্সপথ" = "8" অনুসন্ধান করুন:
- প্রতিটি সমাবেশ / ডেলির জন্য, পুরো পথ সরবরাহ করুন
- ফাইল সংরক্ষণ
আমার .vdproj ফাইলের মধ্যে আমার বেশ কয়েকটি এন্ট্রি ছিল কেবল সমাবেশটি উল্লেখ করে:
সমাবেশটি "উত্সপথ" = "8: মাইএ্যাসবেশন.ডিএলএল"যদিও ভিজ্যুয়াল স্টুডিওটি [কোনওভাবে] ফাইলের অবস্থানটি জানত, আমি পুরো প্রকল্পটি সরবরাহ না করা পর্যন্ত "প্রকল্পের নির্ভরতা আপডেট করতে অক্ষম" ত্রুটি পেয়েছি:
"সোর্সপথ" = "8: .. \ .. \ .. \ বিল্ড \ বিন \ মাইকম্পানি.মায়আঅ্যাস্পবুলেন্স.ডিএলএল"
শুভেচ্ছা,
জেফ ...
আমি উল্লেখ করেছি যে ভিজুয়াল স্টুডিও দ্বারা কোন নির্ভরতাগুলি প্রতিবেদন করা হয়েছিল এবং এটির প্রয়োজন হলে তাদের ঠিক করার জন্য একটি স্ক্রিপ্ট লিখেছিল।
নোট করুন যে এটি এখন আমাকে একটি সতর্কতা দেয় "দুটি বা আরও বেশি অবজেক্টের একই লক্ষ্য অবস্থান রয়েছে ('[টার্গেটডির] \ MyAsorses.dll') But তবে আমি সেটার সাথে বেঁচে থাকতে পারি।
এটি আমার জন্য একই সমস্যাটি সমাধান করেছে: আমি ত্রুটি বার্তায় উল্লেখযোগ্য অ্যাসেমব্লিকে জিএসি-তে যুক্ত করেছি added আমি যখন প্রকল্পটি পুনরায় কম্পাইল করেছিলাম তখন সমাধান সমাধানের এক্সপ্লোরের "সনাক্তকরণের উপর নির্ভরশীলতা" এর অধীনে dll এর উপস্থিতি ঘটেছিল এবং আমি একই ত্রুটি পেয়েছি। তারপরে আমি dll এর (ডান ক্লিক ক্লিক করুন এবং বাদ দিন নির্বাচন করুন) এবং প্রকল্পটি অবশেষে ঠিক আছে সংকলিত বাদ।
.Vdproj ফাইলের "Deployable" -> "ফাইল" বিভাগে এতিম ফাইলগুলির কারণে সমস্যা দেখা দিতে পারে। আপনি ভিজ্যুয়াল স্টুডিওতে সেটআপ প্রকল্প থেকে সমস্ত ফাইল সরিয়ে এটি যাচাই করতে পারেন (প্রথমে ব্যাকআপ করুন)। আপনি যদি কোনও টেক্সট সম্পাদক দিয়ে .vdproj ফাইলটি খোলেন এবং এখনও "ফাইল" বিভাগে এন্ট্রিগুলি দেখতে পান আপনার এই সমস্যা রয়েছে। আপনি এই ফাইলগুলির কীগুলি নোট করতে পারেন এবং মূল .vdproj ফাইল থেকে এগুলি সরাতে পারেন এবং এটি আবার কাজ করা উচিত।
বিকল্পভাবে এই দ্রুত ফিক্স প্রোগ্রামটি সংকলন করুন (কেবলমাত্র ভিজ্যুয়াল স্টুডিও 2010 এর মাধ্যমে পরীক্ষিত):
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class Program {
static void Main(string[] args) {
try {
if (args.Length == 0) {
Console.WriteLine("FixVDProj <path to .vdproj file>");
return;
}
if (!File.Exists(args[0])) {
throw new Exception("File " + args[0] + " does not exist!");
}
string[] strarSource = File.ReadAllLines(args[0]);
List<string> listDest = new List<string>();
List<string> listKnownKeys = new List<string>();
int iSection = 0;
bool bAccept = true;
bool bNeedFix = false;
foreach (string strLine in strarSource) {
switch (iSection) {
case 0:
if (strLine.Trim() == "\"DeployProject\"") {
listDest.Add(strLine);
iSection++;
} else {
throw new Exception("\"DeployProject\" not found");
}
break;
case 1:
if (strLine.Trim() == "\"Hierarchy\"") {
iSection++;
}
listDest.Add(strLine);
break;
case 2:
if (strLine.Trim().StartsWith("\"MsmKey\" = ")) {
int p = strLine.IndexOf('=');
string strMsm = strLine.Substring(p + 1).Trim();
if (strMsm.StartsWith("\"8:") && strMsm.EndsWith("\"")) {
listKnownKeys.Add(strMsm.Substring(3, strMsm.Length - 4));
} else {
throw new Exception("Invalid MsmKey " + strMsm);
}
} else if (strLine.Trim() == "\"Deployable\"") {
iSection++;
}
listDest.Add(strLine);
break;
case 3:
if (strLine.Trim() == "\"File\"") {
iSection++;
}
listDest.Add(strLine);
break;
case 4:
if (strLine.Trim() == "{") {
iSection++;
}
listDest.Add(strLine);
break;
case 5:
if (strLine.Trim() == "}") {
listDest.Add(strLine);
iSection = -1; // finished
} else if (strLine.Trim().StartsWith("\"") && strLine.Contains(':')) {
int p = strLine.IndexOf(':');
string strKey = strLine.Substring(p + 1, strLine.Length - p - 2);
if (listKnownKeys.Contains(strKey)) {
Console.WriteLine("Accepted key " + strKey);
bAccept = true;
listDest.Add(strLine);
} else {
Console.WriteLine("Invalid key " + strKey + " removed");
bAccept = false;
bNeedFix = true;
}
} else if (strLine.Trim() == "{") {
if (bAccept) {
listDest.Add(strLine);
}
iSection++;
} else {
listDest.Add(strLine);
}
break;
case 6:
case 7:
case 8:
case 9:
if (strLine.Trim() == "{") {
iSection++;
} else if (strLine.Trim() == "}") {
iSection--;
}
if (bAccept) {
listDest.Add(strLine);
}
break;
case 10:
throw new Exception("File structure depth exceeded!");
default:
listDest.Add(strLine);
break;
}
}
if (bNeedFix) {
File.Copy(args[0], args[0] + ".bak", true);
File.WriteAllLines(args[0], listDest);
Console.WriteLine("File " + args[0] + " has been fixed!");
} else {
Console.WriteLine("File " + args[0] + " did not need fix!");
}
} catch (Exception e) {
Console.WriteLine(e.ToString());
}
}
}
আমি যখন এই ত্রুটিটি পেয়েছি তখন আমার ভিএস 2010 ডিপ্লোয়মেন্ট প্রকল্পটি (.vdproj) 'দুর্নীতিগ্রস্থ' অবস্থায় রয়েছে। বিশেষ করে, আইটেম ফাইল VDPROJ ফাইলের অধ্যায় GUID এর যে অনুপস্থিত আছে অনুক্রমের বিভাগ । এটি নীচে বিশদে বর্ণনা করা হয়েছে।
1) ভিএস 2010 মোতায়েন প্রকল্পগুলিতে নিম্নলিখিত বিভাগগুলি অন্তর্ভুক্ত রয়েছে:
"Hierarchy"
{
}
"Deployable"
{
"File"
{
}
}
২) হাইরিচারি বিভাগে স্থাপনা প্রকল্পে যুক্ত প্রতিটি আইটেমের (যেমন ফাইল) জিআইডি রয়েছে। এছাড়াও, প্রকল্পে যুক্ত প্রতিটি ফাইল DEPLOYABLE> ফাইল বিভাগের অধীনে একটি আইটেম হিসাবে উপস্থিত হয় । নিম্নলিখিত উদাহরণটি msimg32.dll ফাইলটির জন্য একটি সাধারণ কনফিগারেশন দেখায় । হিরিচর্চী এবং ফাইল বিভাগে ম্যাচিং জিইউডি (যেমন _1C15DB39774F7E79C84F1CC87ECFD60A) নোট করুন ।
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
"OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
"MsmSig" = "8:_UNDEFINED"
}
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
3) আমার ভিএস 2010 স্থাপনার প্রকল্পগুলি দুটি উপায়ে দূষিত হতে পারে:
ক) ফাইল বিভাগে একটি আইটেম নকল করা হয়েছে এবং নকল আইটেমটি একটি জিইউডি দেওয়া হয় যা হাইরিচয়েরি বিভাগে প্রদর্শিত হয় না ।
খ) এ একটি আইটেম সঙ্গে যুক্ত GUID ফাইল অধ্যায় থেকে সরিয়ে দেওয়া হয়েছে অনুক্রমের অধ্যায় (অর্থাত আইটেম ফাইল অধ্যায় এতিম হয় না)।
3 ক) প্রথম সমস্যার উদাহরণ - ফাইল বিভাগে নকল আইটেম :
এই উদাহরণস্বরূপ, ফাইল MSimg32.dll ফাইল অনুচ্ছেদে দুটি এন্ট্রি রয়েছে । প্রথম (অর্থাত্ সঠিক) এন্ট্রিটির একটি উচ্চমানের বিভাগে একটি মিলে যায় জিইউইড (যেমন _1C15DB39774F7E79C84F1CC87ECFD60A) রয়েছে , তবে দ্বিতীয় (যেমন ত্রুটি) প্রবেশের জন্য জিইউডি (যেমন 2DDC4FA12BFD46DEAED0053D23331348) এইচআরচিরওয়ান বিভাগে উপস্থিত হয় না ।
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
"OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
"MsmSig" = "8:_UNDEFINED"
}
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2DDC4FA12BFD46DEAED0053D23331348"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
3 খ) দ্বিতীয় সমস্যার উদাহরণ - এফাইল বিভাগে এতিম আইটেম :
এই উদাহরণস্বরূপ, ফাইল msimg32.dll ফাইল অনুচ্ছেদে একটি এন্ট্রি রয়েছে । তবে এই এন্ট্রির সাথে সংযুক্ত জিইউইউডির (যেমন A515046ADA6244F2A260E67625E4398F) এইচআইআরকি বিভাগে কোনও মিল নেই (যেমন এটি অনুপস্থিত) ।
"Hierarchy"
{
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A515046ADA6244F2A260E67625E4398F"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
৪) সমাধান: উপরের চিত্রিত উভয় সমস্যার জন্য সমাধানটি ফাইল ফাইলটিতে এতিম আইটেমটি মুছে ফেলা হয় ।
নিম্নলিখিত উদাহরণটি দেখায় যে উপরের পয়েন্ট 3 এ এর ফাইল ফাইলটি এমএসআইএম 32. ডিএল- এর দ্বিতীয় প্রবেশের পরে কীভাবে উপস্থিত হবে ।
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
"OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
"MsmSig" = "8:_UNDEFINED"
}
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
5) আমি ভিডিপিআরজে দুর্নীতিগ্রস্ত এন্ট্রিগুলি কেবল এর জন্যই পেয়েছি:
এখানে বেশ কয়েকটি সমাধান যা কাজ করে:
1) সেটআপ প্রকল্প থেকে সমস্যাগুলির একটি ডিএলএল সরিয়ে ফেলা এবং তারপরে আবার যুক্ত করা আমার সমস্যার সমাধান করে। সমস্যা রয়েছে এমন অনেক DLL থাকা অবস্থায়ও এটি কাজ করেছিল worked এগুলির মধ্যে একটির সরানো এবং যুক্ত করা ভিএস 2010 কে কোনওভাবে কিছুটা ঠিক করার জন্য ট্রিগার করেছিল।
2) সমাধানটি পুনর্নির্মাণ করুন, তারপরে পুনরায় নির্ভরতাগুলি আপডেট করার চেষ্টা করুন। পুনর্নির্মাণটি ভিজ্যুয়াল স্টুডিওকে নির্ভরতাগুলি কী তা আবিষ্কার করতে সহায়তা করে, কারণ এটি কিছুই নির্মিত না হয়ে নির্ভরতাগুলি খুঁজে পেতে লড়াই করতে পারে।
3) ভিজ্যুয়াল স্টুডিও পুনরায় চালু করুন
উপরে লিঙ্কযুক্ত ভিএস 2010 হটফিক্স আমার পক্ষে কাজ করে না। কখনও কখনও VS2010 পুনরায় চালু করা সমস্যার সমাধান করে এবং যখন এটি কাজ করে না, উপরের কাজগুলি করে।
আপনি যখন ডিবাগ করার চেষ্টা করছেন এবং রিলিজ মোডটি নির্বাচন করেছেন তখন এটিও ঘটতে পারে। এখনই পেয়েছি :(