Project output files deleting when rebuilding entire VS solution, causing build failure - c#

Before building anything, here is the output folder of the problematic project:
It is empty
After building the whole solution, I get this error:
Severity Code Description Project File Line Suppression State
Error CS0006 Metadata file
'C:\Users\Grant\Source\Repos\raderag\ExcelConnectRTDKraken\KrakenOrderSystem\bin\x86\Debug\KrakenOrderSystem.dll'
could not be
found KrakenOrderTestClient C:\Users\Grant\Source\Repos\raderag\ExcelConnectRTDKraken\KrakenOrderTestClient\CSC 1 Active
Which makes sense, because there is nothing in that folder. So I rebuild the problematic project by itself, and the rebuild is successful. The output folder looks like this:
All dlls are there. So far so good
Now when I try to rebuild the entire project, I get the same exact error as before and the files in that output file are gone.
Here's what I've tried:
I rebuilt the problematic project successfully. I then rebuilt every single project in the solution one by one to see if they would delete the files in that project output. None of them did. I then tried rebuilding the whole solution, and got the same error with the output files gone.
Sorry that I don't have more information. Please let me know what more I can provide to accelerate a solution to my problem. Thank you!
Edit:
Oddly enough, the rebuild of the entire solution actually sometimes works. It doesn't always delete those files, although 90 percent of the time it does, and I can't find the cause for it's success and failure. It's seemingly random.
Edit:
Even more absurdly, without changing anything the solution now successfully builds 90 percent of the time and fails for the same reason 10 percent of the time.

Related

DOTNET Core: Unable to copy apphost.exe upon build?

I work on this project every day, and recently each day its broken (refuses to build)
Error message:
Microsoft.Common.CurrentVersion.targets(5100, 5): [MSB3021] Unable to copy file "D:\projects\Emulator\Emulator.Server\obj\Debug\net6.0\apphost.exe" to "bin\Debug\net6.0\Emulator.Server.exe". Access to the path 'D:\projects\Emulator\Emulator.Server\bin\Debug\net6.0\Emulator.Server.exe' is denied.
I'm unsure what is causing this. I've tried everything I can think of: dotnet clean, deleting bin and obj folders, nothing seems to want to fix it.
The process is not running. I can also delete the .exe so it isn't in use anywhere.
There really doesn't seem to be a fix other than renaming the folder to something else, building it, renaming it back. If you just change it on a regular basis it will keep happening and "break" the path its in when it breaks, no explanation I guess we just have to live with it.
It's a feature not a bug, right Microsoft?

"The path .. would result in a file outside the App Bundle and cannot be used" Error, mono touch / Xamarin

i am currently facing a really weird and annoying error message after migrating my Xamarin.IOS - Project to the 64bit unified - API. The exact error message is:
/Users/falcowinkler/Dev/AHK_App -Kopie/AHK_App_iOS/../ahk_app_ios/resources/.DS_Store:
Error: The path '../ahk_app_ios/resources/.DS_Store' would result
in a file outside of the app bundle and cannot be used. (AHK_App_iOS).
I get that error not only for .DS_Store but also for two other files.
Here are the things i tried.
Clean / Rebuild
delete bin / obj Folder and rebuild
I deleted the files that throw the error, just to get another message that the project is missing these files. I added them again after that, and got the same error as above again
I tried moving my project to other locations, but the error does not change in the slightest.
I tried to remove all problematic files, before migrating, which didn't work as well.
Does anybody know where all the file references are stored in Xamarin, so i can view/edit them to find out what the error is?
I mean the DS_Store file is just a tiny file from mac - finder architecture, is not even necessary for my project, but still it is referencing it, i will just have to kick out these references i guess.
If anybody encountered these issues as well, and has a solution, pls leave a quick post here, thanks :)
Update
I am now pretty sure that there are some misplaced references to files in my project, i saw a similar issue on git hub. But how can i wipe them out? I tried removing my entire resources Folder and adding it again, but it didn't help either. Error message now looks as follows:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets:
Error: Bundle Resource '../ahk_app_ios/resources/.DS_Store'
not found on disk (should be at '/Users/falcowinkler/Documents/AHKKopie/ahk_app_ios/resources/.DS_Store') (AHK_App_iOS)
If anyone else has this problem, just search your project files for the filename. The .csproj File will appear, where you will be able to wipe out the reference to the file, causing the problem.
If you are using Xamarin Studio, you can delete the .DS_Store under your Ios project [ProjectName.iOS] under the Resources folder

Visual studio - getting error "Metadata file 'XYZ' could not be found" after edit continue

I have stumbled into an issue that is really annoying.
When I debug my software, everything runs OK, but if I hit a breakpoint and edit the code, when I try to continue running I get an error:
Metadata file 'XYZ' could not be found
After looking around for a while, I found some a similar issues, but they were all regarding a build failure, which is not my case (this happens only after edit-continue).
What I have tried so far:
My code is compiling and running.
I cleaned the solution and restarted VS.
I made sure that the missing file's project is being build for the configuration I am running (in configuration manager).
I manually built the missing file's project.
Some extra info:
It does not matter what I change, still get the same error (the change is not related to the missing file).
This happens also when I pause and continue (not only breakpoints)
I am running the project using a custom configuration (configuration manager...). When I run it using the default Debug configuration the error does not occur.
Any ideas?
Eventually what solved the issue was:
Clean every project individually (Right click> Clean).
Rebuild every project individually (Right click> Rebuild).
Rebuild the startup project.
I guess for some reason, just cleaning the solution had a different effect than specifically cleaning every project individually.
Edit:
As per #maplemale comment, It seems that sometimes removing and re-adding each reference is also required.
Update 2019:
This question got a lot of traffic in the past, but it seems that since VS 2017 was released, it got much less attention.
So another suggestion would be - Update to a newer version of VS (>= 2017) and among other new features this issue will also be solved
As far as I can tell, this happens when the project dependencies gets messed up for whatever reason (whilst all the inter-project references are still intact). For many cases, it is NOT a code issue. And for those who have more than a few projects, going through them one at a time is NOT acceptable.
It's easy to reset project dependencies -
Select all projects and right click unload
Select all projects and right click reload
Rebuild solution
For those who have an issue in their code or some other issue that's causing this problem you'll obviously have to solve that issue first.
One possible reason could be you have upgraded the some of your projects (in the solution) to higher version e.g. from .NET 4.0 to 4.5 This happened in my case when I opened the solution in VS 2013 (originally created using VS 2010 and .NET 4.0). When I opened in VS 2013 my C++ project got updated to .NET 4.5 and I started to see the problem.
Generally this kind of error comes with human mistakes like if we change the namespace in some improper way, or changing folder names from explorer for current project etc, where compiler is unable to detect sometimes.
I came across the same error, to resolve which I tried few steps. Please follow all the steps :
Clean whole Solution
Right Click on every Project in your solution , Go to Properties and make your Default namespace as well as Default assembly name same as in your code (i.e namespace before class name)
Check Folder names for each project by going through the explorer(Where your project solution is). If not matching with your project names, make it similar (Like step 2) to them.
Remove all your references from each project relevant to another of same solution, and add it again.
In Your Project Solution folder, you will find Visual c# Project file. Right click and open with Notepad. In your initial lines you would find for lines for every project like below:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "**Client**", "**Client** \ **Client**.csproj", "{4503E259-0E3B-414A-9074-F251684322A5}"
EndProject
Check again Foldernames (I have highlighted in BOLD) and make it similar to what you did in step 2.
Clean the whole solution again
Build The Solution (If doesn't work try building individual after cleaning again)
Make sure all your dependent projects are using the same .Net Framework version. I had the same issue caused by a dependent project using 4.5.1, while all others were using 4.5. Changing the project from 4.5.1 to 4.5 and rebuilding my solution fixed this issue for me.
XYZ couldn't be found because is not built yet....
Right click on the solution and check Project Dependencies, the Project Build Order should also change according to the dependencies that have been set.
The only thing that worked for me was to delete the Solution User Options (.suo) file. Note that, this is a hidden file.
To locate this file, close your Virsual studio and search for .suo from the file explorer within your project.
PS: a new .suo file will be created again when you rebuild your project and hopefully this newly created one wont give you issues.
I hope that helps someone get rid of this anoying error :).
I had this problem for days! I tried all the stuff above, but the problem kept coming back. When this message is shown it can have the meaning of "one or more projects in your solution did not compile cleanly" thus the metadata for the file was never written. But in my case, I didn't see any of the other compiler errors!!! I kept working at trying to compile each solution manually, and only after getting VS2012 to actually reveal some compiler errors I hadn't seen previously, this problem vanished.
I fooled around with build orders, no build orders, referencing debug dlls (which were manually compiled)... NOTHING seemed to work, until I found these errors which did not show up when compiling the entire solution!!!!
Sometimes, it seems, when compiling, that the compiler will exit on some errors... I've seen this in the past where after fixing issues, subsequent compiles show NEW errors. I don't know why it happens and it's somewhat rare for me to have these issues. However, when you do have them like this, it's a real pain in trying to find out what's going on. Good Luck!
Well, my answer is not just the summary of all the solutions, but it offers more than that.
Section (1):
In general solutions:
I had 4 errors of this kind (‘metadata file could not be found’) along with 1 error saying 'Source File Could Not Be Opened (‘Unspecified error ‘)'.
I tried to get rid of ‘metadata file could not be found’ error. For that, I read many posts, blogs etc and found these solutions may be effective (summarizing them over here):
Restart VS and try building again.
Go to 'Solution Explorer'. Right click on Solution. Go to Properties. Go to 'Configuration Manager'. Check if the checkboxes under 'Build' are checked or not. If any or all of them are unchecked, then check them and try building again.
If the above solution(s) do not work, then follow sequence mentioned in step 2 above, and even if all the checkboxes are checked, uncheck them, check again and try to build again.
Build Order and Project Dependencies:
Go to 'Solution Explorer'. Right click on Solution. Go to 'Project Dependencies...'. You will see 2 tabs: 'Dependencies' and 'Build Order'. This build order is the one in which solution builds. Check the project dependencies and the build order to verify if some project (say 'project1') which is dependent on other (say 'project2') is trying to build before that one (project2). This might be the cause for the error.
Check the path of the missing .dll:
Check the path of the missing .dll. If the path contains space or any other invalid path character, remove it and try building again.
If this is the cause, then adjust the build order.
Are you using a database code generation tool like SQLMETAL in your project?
If so, you may be facing a pluralized to unpluralized transition issue.
In my case, I have noted that some old pluralized (*) table names (upon which SQLMETAL adds, by default, an "s" letter at the end) table references to classes generated by SQLMETAL.
Since, I have recently disabled Pluralization of names, after regerating some database related classes, some of them lost their "s" prefix. Therefore, all references to affected table classes became invalid. For this reason, I have several compilation errors like the following:
'xxxx' does not contain a definition for 'TableNames' and no extension method 'TableNames' accepting a first argument of type 'yyyy' could be found (are you missing a using directive or an assembly reference?)
As you know, I takes only on error to prevent an assembly from compiling. And that is the missing assemply is linkable to dependent assemblies, causing the original "Metadata file 'XYZ' could not be found"
After fixing affected class tables references manually to their current names (unpluralized), I was finnaly able to get my project back to life!
(*) If option Visual Studio > Tools menu > Options > Database Tools > O/R Designer > Pluralization of names is enabled, some SQLMETALl code generator will add an "s" letter at the end of some generated table classes, although table has no "s" suffix on target database. For further information, please refer to http://msdn.microsoft.com/en-us/library/bb386987(v=vs.110).aspx
Hope it helps!
I had this error come up. I followed all of the solutions here but nothing worked. I was using Visual Studio 2013 Professional. I couldn't get the individual project rebuilds to work and I finally figured out there was a circular dependency in my references. Visual Studio does a pretty good job normally of warning you if you are adding a reference to something that references back, but for some reason it didn't in this instance. I added a reference to a project that referenced the project I was working on - and it accepted it. VS bug perhaps?
My 5 cents.
This problem started after a solution wide clean.
I managed to get the problem to go away by setting the Active Solution configuration in: Build -> Configuration manager to release. Then build and set it back to debug again. The build succeeded after that.
Close VS, locate and remove the 'packages' folder from outside of visual studio. Restart VS and build -> all dependencies are reinstalled
Visual Studio 2019 Community 16.3.10
I had similar issue with Release build. Debug build was compiling without any issues.
Turns out that the problem was caused by OneDrive. Most likely one could experience similar issues with any backed-up drive or cloud service.
I cleaned everything as per Avi Turner's great answer.
In addition, I manually deleted the \obj\Release -folder from my OneDrive folder and also logged to OneDrive with a browser and deleted the folder there also to prevent OneDrive from loading the cloud version back when compiling.
After that rebuilt and everything worked as should.
this happens because of the difference of names in the folder name and namespace name. If u create a namespace in a certain name , and later you rename it the namespace will have the old name itself. And the compilation will take the old path to find the .dll and .exe file . To avoid this open the .csproj file of each namespace with a text file , and find the old path in the file.
remove this, clean and rebuild the solution. This worked for me. I spent an entire day working on this problem.
I had this and managed to fix it using this SO answer:
Metadata file '.dll' could not be found
I had to uncheck all of the boxes, click Apply, reenable all of the checkboxes and then click apply again, but it fixed the problem.
I just ran into this issue and after an hour of screwing around realized I had added an aspx file to my product that had the same name as one of my Linq-To-Sql classes.
Class and Page where "Queue".
Changed the page to QueueMgr.aspx and everything built just fine.
For a new build, it could be that some dependencies aren't installed. For me it was Crystal Reports.
It happens when one project dll is failing and that is referenced by number of projects. So first fix it and then Build individuals.
I ve had this problem and it has started after importing our solution to TFS as a new project.I came across this topic and found a quick solution with some inspiration from your answers.
All i needed to do is to rebuild the project thats supposedly lost its metadata file and voila , problem solved.
There's also one another silly reason which you should check with patience... as it occurred to me after wasting 4hours searching for answers:
The story to me was that I accidentally changed a small line of code among thousands of c# class files and then trying to rebuild the solution. As you could imagine, I ended up with 40+ meta data file missing errors and with 1 compilation error among them -- which I didn't check carefully, purely thinking all errors were the same!
after 4 hours searching and then accidentally double checking my error list, I found that silly code error, fixed it, compiled, and then error disappeared.
Not a good answer to your problem, but do hope my case wasn't same to yours.
I had the same problem. In my case I had by mistake I had set all the projects apart from the project with the main method as console application.
To resolve I went to every project other than the one with main function and right click> properites > output type > class library
it was happened to me because I've a strange clash in the namespaces:
I had
AssemblyA
with namespace
AssemblyA.ParentNamespace
witch defines ClassA
and in the same assembly another namespace with name
AssemblyA.ParentNamespace.ChildNamespace
witch defines a different ClassA (but with the same name)
I had then in AssemblyA.ParentNamespace IInterfaceB witch had a method that in the beginning returns IEnumerable and a ClassB witch implements IInterfaceB
I had later modified the method in ClassB to return IEnumerable but I've forgot to update the IInterfaceB definition, so the method there was still returning IEnumerable
the fun fact was that the solution still complile if I did a rebuild all, but the tests witch refers AssemblyA didsn't work and returns the "Metadata file could not be found"error.
updating InterfaceB to correctly return IEnumerable as its implementor ClassB did solved the problem, unfortunately the error message was vague and also the fact that the compilation worked makes me suppose that maybe there is something to fix in the compiler
A coworker was running into this problem and the cause was eluding us. Eventually we realized that the project directory (and therefore the path to the NuGet packages) contained %20 (thanks, some Git gui tool which shall not be named) and the error messages showed that the compiler was looking for an very similar-looking path but one which had to %20, rather a space. Apparently something in the build system somewhere performs HTML-decoding on local filesystem paths.
Renamed the working copy directory and everything started working.
I had this issue too.
It started after I did a little folder tidying in my project.
I then tried to compile and got many duplicate class errors. (despite them not being duplicated. I think the linking was just out of wack)
Upon checking these, the errors would all disappear leaving only the "Metadata file ...debug\application.exe could not be found" error.
I solved this by looking in the build output window to find which classes were duplicated.
I would then right click the class name and "go to definition".
there will be two definitions to select from, open them both, the second definition will seem to open the same file again, however the second one will identify as the error source(red underline).
Delete all the code out of the file and save(This will not effect your actual file).
This should now compile correctly.
Ensure that there are no spaces in the path to your project...
I am using Windows 10 with Visual Studio Community 2019 and I was cloning a multi project solution as it was from a GIT repo. I was having this error with all other dependencies in the solution along with a E_POINTER error. Its path, inherited from GIT, had spaces like C:/repos/MY PROJECT NAME/ ...
I deleted it, cloned it again and make sure that its path contained no spaces like C:/repos/MY_PROJECT_NAME/ ...
That fixed my problem.
I had same issue too.
In my case, I recently add an internal class to somewhere in project. One of the dependencies in solution has same class name and both of them are added correctly to references.
I changed my last activity and rebuild, it works.
Be sure that your compiler messages are valid. In my case I catch reference error from there, not listed as an error in Error List.

File and Line Numbers for Errors are not Displaying in the Error List Unless the File Is Open

I have a solution where the file name and line number of the error isn't displaying in the Error List, unless I have the file open.
I have another solution where just three errors show up when I build the solution, and they do display the line number and file. If I open the file with the error, another 3 errors pop up, but when I close the file, all the errors disappear until I rebuild again.
The only issue I've seen from googling is that the path is too long or too weird, but I don't think this is an issue. Path is C:\TFS\Apps\Rel_2013.7.1\S3\CrmSvcUtil Extensions for the solution that is partially working and C:\TFS\Apps\Rel_2013.7.1\S3 for the one that doesn't work at all.
Edit 1
Just to make it clear what I'm seeing: I have multiple projects in my solution but one of them doesn't show the file or line number of the error unless the file is open.
In this screen shot I've added two dumb errors, each in a different project, and have built the solution. The Test Project displays the file and line number as expected. The Common project isn't displaying the file or line number error even though it should and does when I actually open the file with the error in it. The Warning isn't displaying the file because it is a project level warning, not a file level warning, this makes sense.
When I open the file with the error the file name and the line number do show up, but on a different error:
If I change the int to a string, only the line numbered error is removed. I actually have to build in order for the error to be removed.
I had the same issue on projects that are using legacy Workflow framework V3. Interesting to note, that if project has only compiler warnings, the file and line are shown correctly, but error causing all warnings and errors refer to file C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.Targets(121,5):
The nasty workaround that I found is
Unload the project
Comment out at the bottom of the .csproj file the line
<Import Project="$(MSBuildToolsPath)\Workflow.Targets" />
Reload the project and compile it. Compiler errors will be shown with correct file name and line numbers.
Fix compiler errors
Again unload the project, restore Workflow.Targets import and reload the project.
The similar solution was reported to MS https://connect.microsoft.com/VisualStudio/feedback/details/797056/state-machine-workflow-projects-using-vs-2012
If you forget to restore Workflow.Targets import, there will be run-time errors like
System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException: The workflow failed validation.
at System.Workflow.Runtime.WorkflowDefinitionDispenser.ValidateDefinition(Activity root, Boolean isNewType, ITypeProvider typeProvider)
at System.Workflow.Runtime.WorkflowDefinitionDispenser.LoadRootActivity
Certain errors such as schema errors are reported but don't affect the final build. Depending on the file you may/may not see errors unless the file is open. Here are some things to try
Build in debug/release mode and see if that changes things for either build.
Change the MSBuild Project Build Output Verbosity (Tools-> Projects & Solutions -> Build and Run) to see if that has an effect. I surmise that will only add to the output but not affect on the Error List Window.
Does this happen in VS2013? That might provide a clue.
It is not unusual there to be differences between output builds and intellisense errors as reported.
Sounds to me like you are just looking at errors that are generated by the IntelliSense parser. Which only looks at open files. When you close the file then those IS errors will be removed from the list again. Seeing the error list change after you've built and open a file is similarly explained, the IS parser takes over again.
This is all by design, get ahead by just fixing the errors.
Michaels solution didn't work for us in May, 2018.
Visual Studio 2017 + .NET 4.7.2, and C# 7.2, old Workflow service.
It was inline variable declerations added:
int.TryParse(s, out int queueId);
Went back to pre-defining variables and it compiled successfully.
int queueId = 0;
int.TryParse(s, out queueId);
I would ascertain Microsoft has a bug.
Sample Errors:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : Invalid expression term 'int'
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : ; expected
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : Invalid expression term ')'

Payload file FileListAbsolute.txt does not exist compile error

Trying to debug this error. The exact error is:
Error 15 Payload file
'C:\svn\myproj\obj\Debug\myproj.csproj.FileListAbsolute.txt'
does not exist.
It occurs when trying to build my solution in VS2012.
I don't know what this file is, or does, but it is definitely there in the solution. It seems to be an auto-generated file of some sort.
Any explanation for what this error might mean or how to fix it?
The file contains a list of every single file in the solution it would seem.
Odds are something got out of sync in the obj folder, which is an intermediate folder where Visual Studio stores things to make builds faster in subsequent runs.
Steps I would try, in this order.
Clean the project
Clean your solution.
Delete the bin and obj folders
Restart VS
Reboot.
I used the notepad++'s find in files, the problem was "Data\license.xml", so I deleted it from csproj by double clicking on line(pic) in notepad++'s find results window.

Categories

Resources