Teamwork problem writing the code with colleagues in bitbucket - c#

I am writing the code with my team by usin0 the Bitbucket service. The problem is the following:
Since yesterday, when I downloaded the last commit from our public repository I see all projects (folders) but in visual studio where I want to run the application the compiler tells me that some libraries, projects or references are missing. At the same time I see only one of four projects in visual studio(while it must be four). I've tried to rebuild the solution but this does not help.
When I asked one of my colleagues about the problem, he told me that this is a standard procedure and he will give me the access to all libraries and projects when the work will be finished.
My question is: Can I do something to got the access to all missing files?
P.S. I am the owner of Bitbucket repository

Check with your colleague their solution build before pushing new changes and all the dependencies / changes to packages.config and project files are pushed in.
Usually a clean and rebuild and a compare between project files will tell you what are the differences.
P.S. if you have a .gitignore file check that too, in case someone added something that is required to your project.

Related

One of my app DLLs is being treated like an assembly in my InstallShield MSI installer

I'm creating a new installer using InstallShield 2020 R3 for the new WPF .NET 5.0 version of one of our software products. It works except for one issue. I have searched the Revenera community site and the Internet for answers, but find none. This project is on a deadline, so I would like to find an answer as quickly as possible. I have submitted a ticket to Revenera, but hope that, maybe, someone else has a simple answer for me.
The Issue:
A single product DLL that is not a third-party assembly, but one of the class libraries build with the product, is not being copied to the destination folder during install. The install log shows that the operation that the installer is using to copy the DLL is AssemblyCopy rather than the operation, FileCopy that is used for all other components in the application.
I've checked, double-checked, triple-checked... on and on the component properties and see that the properties are identical to all of the other DLL components in the InstallShield project.
Any clues will be much appreciated. I don't see a way to attach the install.log and the InstallShield project file, otherwise I would.
OK, I made one more attempt to find answers by searching for Assemblies in InstallShield help. I decided to post the answer so that somebody else searching in this forum could find a resolution to the issue.
I found that assembly components for an MSI installer end up in the MsiAssembly table, which is accessed via the Direct Editor in InstallShield. The image below shows how to get to the table and shows that the table is empty now, but initially had my problem DLL in it. After I cleared the table, the DLL is copied to the installation folder as intended.

What does the .dtbcache file do?

I have a C# WinForms project, which I am working on in Visual Studio 2017 (although it was originally created in the 2015 version).
I don't recall having done anything special, but it has added a file called .dtbcache, that it wants to add to git. The file has no extension, and a Google search doesn't show any results.
The file is located in ..\repos\myprject\.vs\MyProject\DesignTimeBuild. Which means that the "dtb" part of the file name probably means design time build, but that doesn't really make it that much better.
Can I delete it or add it to .gitignore? I would prefer not to include it in our git repository, unless it is required.
Short answer: You can safely exclude it from your Git repo.
Long answer:
You're right that dtb stands for Design Time Build. This is a file automatically created by VS2017, with a bit more information here and here (links to a blog from someone working on the Visual Studio project system). In summary, it's Visual Studio more or less extrapolating what files will be produced in order to make sure Intellisense is fully available as intended.
From the linked articles, one of the purposes of this is to make sure Visual Studio has an answer in certain cases:
Given an assembly reference in the project file, what assembly on disk is that reference going to actually refer to at compile time?
Given a XAML file, what is the code that is going to be generated by the XAML compiler at compile time going to look like?
Given a glob file pattern (*.cs), what files are actually going to be included at compile time?
So the files, being generated on the fly, are not needed in your Git repo, and can safely be excluded. Moreover, from what I can tell, these files are specifically made and used by Visual Studio 2017.

Dynamic DLL usage in Visual Studio 2010

I've searched on google and here quite a lot for my problem and can't seem to find a solution.
I have this huge solution, one of the projects(let's call it "Main") have reference to two other projects(A and B). Projects A and B have a reference dll from an external tool, it's the same tool, but different versions of it. The developer must have the tool installed in the computer to be able to use it.
Now, Project A uses Tool_v1.dll, and Project B uses Tool_v2.dll. If a developer has Tool_v2 installed, they can build the Main project with no problems, but if he has Tool_v1, the old version, he can't build Project B for obvious reasons.
My idea to solve this(as a developer with old Tool_v1 installed) was to make two build configurations in VS, but just having the Project B's referenced, even if not used, still causes it to be built, thus giving errors when I want to build the solution.
If I simply delete Project B's reference works like a charm, but I wanted to simply choose the build configuration it's and done. Any ideas?
You can create two different configurations, each with specific reference lists/locations.
I have detailed instructions on how to accomplish this here: https://johniekarr.wordpress.com/2013/12/25/configuration-specific-reference-location/1

Automatic References for new projects in VisualStudio

I have a Visual Studio solution, for which I'm trying to keep the code fairly well separated, so I'm using quite a lot of projects.
I've got a handful of projects that use all the other projects (Unit-tests, a Bench-marker, a "Main" project). And a couple of the existing projects are going to be used by all the projects (core dependencies, utility projects, etc.)
The upshot is that each time I create a project, I have to give each project in the first group a reference pointing to that new project, and I have give the new project a reference pointing to each project in the second group.
I also have to add any common nuget packages I want (e.g. MoreLinq)
Is there any way to tell VS about these things and get it to do them automatically when I add a new project?
(Running VS2013 if it's relevant)
================================================
Note: It's entirely possible that the correct answer is "you're using too many projects". If you think so, thank you, but please don't feel the need to comment - that's not the question I'm interested in answering at the moment.
You could create a project template new projects in your solution.
See http://msdn.microsoft.com/en-us/library/xkh1wxd8(v=vs.120).aspx for more details.

VisualSVN - adding from separate Repos?

I have a solution in Visual Studio 2010 that exists in one repo. I then want to add a project to this solution from a separate repo.
Ive tried right clicking on the solution in VS > Add existing project, but when it adds to the solution, all of the SVN bindings have disappeared in Visual Studio.
Is it possible to add a project from another repo into my current solution? Thanks.
BTW im using VisualSVN / TortoiseSVN.
You can use the svn:externals property to pull in part of a separate repository. Note that you lose the ability to commit atomically.
What you are trying to do violates some of the basic SVN usage principles. Each repository is supposed to be an integer and intact source of working code, so when another developer downloads the code he's got everything needed to work (except external dependencies, if any). You seem to be willing to force developers to make a filesystem puzzle of projects, that in the general case results in complicated check-outs from several repositories into several folders.
If you want to make a copy of a directory from another repository into your repository, I suggest you to do the following:
Checkout a copy of the project from the separate repository to a temporary directory
With Tortoise, export it into a subdirectory of your solution
Add it to VisualSVN, and then be prepared to commit all the files into your repo as a copy
Remember, once the separate repository is updated, updated won't be reflected on your repo. You'll have to make patches or better use merge command.

Categories