Проблем с dll файл при компилация на проект


1

Написал съм си домашното по втората тема от OOП - Defining Classes II. Всичо си работеше екстра и се принтираше на конзолата. Реших, че вече съм готов и сложих още няколко коментара на различни места по кода. След това отново пробвах да компилирам. VS се замисли доста повече от обичайното и след около 10-итина секунди изплю 2 грешки и 10 предупреждения. 

Това, което ми казва е че не може да копира dll файла, който е към класа Version, който съм направил за задачата. 10 предупреждения, че е пробвал 10 пъти, 1 грешка, че е пробвал 10 пъти не може да го копира и една грешка, че този dll се ползва от друг процес и затова не става. 

Грешката, която дава малко повече смисъл и обяснение казва следното: 

Warning 1 Could not copy "C:\Users\XXXX\Documents\Visual Studio 2012\Projects\DefiningClasses_Part2\Version\bin\Debug\Version.dll" to "bin\Debug\Version.dll". Beginning retry 1 in 1000ms. The process cannot access the file 'bin\Debug\Version.dll' because it is being used by another process.

А всичко някак си работеше добре преди това. Гледам из нета доста хора се оплакват от това, но като цяло няма решение. Сега не знам, ако този проект, който до преди малко работеше го опаковам и го кача за домашно, дали ще тръгне на машината, която го свали да проверява. Като код всичко е правилно, но нещо друго някъде се случи и не знам дали е в моя компютър или нещо по проекта и на всеки друг комп ще се чупи също.

Някой сблъсквал ли се е с нещо такова и знае как може да се оправи ? 

EDIT: Вече пробвах някои неща като да изтрия dll файла, да го преименувам, да задам на антивирусната изключение за тази папка, за да не пипа нещо по същото време. Няма никаква промяна. Все същите грешки се появяват.
При стартиране на проекта вече също излиза съобщение за грешка.

в C# OOP от Vazzzz (1380 точки)


Отговори



1

Обичайната причина за тази грешка е че си пуснал инстанция на програмата (в случая програма която ползва dll-а) и си я забравил. Ако не е това, можеш да пробваш с ProcessExplorer да провериш кой процес е заредил dll-а... или да си рестартираш компа :-)

Линкове за ProcessExplorer:

http://www.symantec.com/connect/blogs/using-process-explorer-who-loaded-dll

http://windowsxp.mvps.org/processlock.htm


от staafl (5770 точки)


0
Всичко, което го написа вече го пробвах. Рестарти на VS и на компютъра. С Process Explorer ми беше една от първите идеи да пробвам, но там ми показва само Main-a на програмата, като единственото нещо, което ползва този dll. Отново задънена улица... Да търсиш грешка в кода си е далеч по-приятно от такъв софтуерен проблем :)

от Vazzzz (1380 точки)

0
можеш ли да си качиш проекта някъде да го погледна?

от staafl (5770 точки)



0

Провери дали на всички части на солюшъна Target framework е както трябва.

Виж дали това няма да помогне - http://dependencywalker.com


от nikivat (246 точки)


0

от simonkazakov (1116 точки)


0
Ще проверя по-късно или утре, че съм на работа в момента. Ще погледна и на колегата nikivat предложението.

от Vazzzz (1380 точки)


0
Нз как може да се оправи но аз получавам за щяло и нещяло некви грешки като си компилирам и всичките включват - Beginning retry 1 in 1000ms. и всичко това започна от няколко дена когато сложих win8

от yotov87 (52 точки)


0
Пробвай да си ъпдейтнеш VS с последните ъпдейти. След като сложих 8-цата и аз имах някои проблеми, но изтеглих ъпдейт 3 за VS 2012 и всичко се оправи. Това, което сега ми се появи я някакъв частне случай(надявам се). Не съм имал проблеми досега

от Vazzzz (1380 точки)