If I re-factor a type name, enum or constant that is relied upon within a workflow, the Visual Studio solution will compile without displaying any errors. However, if I re-open the workflow XAML, it is re-compiled and the appropriate error(s) displays in the error window.
I have 30+ workflows - this makes re-factoring somewhat difficult as I have to open and check for errors in each workflow before committing my work to source control.
Is there anyway to FORCE Visual Studio to re-compile all XAML files in the solution without opening them manually? (something similar to property in MVC?
Regards
Warren
XAML files aren't really compiled. Instead they are embedded as a resource and a wrapper type is generated that loads the XAML as a resource from the assembly. As a result errors in the XAML don't stop the project from compiling and only show up at runtime.
Related
I have an F# solution in Visual Studio 2015 (Enterprise) with several projects in which control various pieces of hardware. In each project there are .fsx script files which demonstrate how the API is used to do basic tasks on the hardware. If I make changes to the API and rebuild, then I correctly get the Error List populated with all the errors from the compiled .fs files, but since the .fsx aren't required to make the .dlls, then I don't get errors from them when I change the underlying API.
If I open each .fsx file individually in the editor, then I get the Error List populated for as long as the file is open, but I'd like to have them block the build and all appear, rather than having to go through each in turn, which takes quite a while. Is there any way to do this?
Thanks in advance.
The suggestion from Fyodor would certainly work - but I guess building a custom step for the build system might not be the easiest thing to do!
A simple alternative would be to add a separate F# project that contains the fsx files and compiles them - then you can just ignore the result of the building the project.
When you add fsx file to project, it is not compiled as part of the project build, but you can change that by choosing Compile as an "Action" in the properties window in Visual Studio. Alternatively, you can just edit the fsproj file:
<Compile Include="some.fsx" />
When editing the file by hand, you can also make it point into another folder:
<Compile Include="..\OtherProject\some.fsx" />
I am trying to decompile an assembly with ReSharper extension for Visual Studio, but when I go to ReSharper→Windows→Assembly Explorer, the explorer is blank. When I have a project open, the tool behaves the way it is meant to, but creating an empty project in order to be able to decompile is just awful. I would like to avoid using the standalone decompiler dotPeek.
The assembly explorer window is intended to show any assemblies that you want to decompile, but aren't referenced in the solution. If an assembly is referenced somewhere in the solution, ReSharper's normal navigation will decompile classes and methods on the fly.
In other words, it's intended to be used in conjunction with the currently open solution, which means it doesn't work without a solution open (also, I believe the list of assemblies in the assembly explorer are stored in the solution settings. Without a solution, there's no list to display).
What's the issue with using dotPeek? It's exactly the same codebase, just compiled with some standalone components rather than as a Visual Studio plugin?
I have installed Visual studio 2010 ultimate and when I try to open any window form from my existing window application project it gives me designer error as "The designer could not be shown for this file because none of the classes within it can be designed."
here is the image
Call Stack error message image
it works fine if I create new window application project, but giving problem for existing projects. Please help
Your question gives us very little to go on, considering you don't show us even a sample of the code that the designer is choking on.
My crystal ball tells me that you've created some custom control classes that inherit from other classes in your project. When the designer goes to load that custom control class, it tries to instantiate its base class, and so on up the inheritance hierarchy. If it doesn't find one of those base classes, it errors.
The solution is simple: make sure that you've built the application/library first, before trying to open any of its custom controls in the designer. That way, all of the dependencies exist and are available to the designer.
Another possible problem, along the same lines, is that your custom controls are using some functionality only available in the full version of the .NET Framework, but your project is set to target the Client Profile. To fix this, open your project's Properties window and change ".NET Framework 4.0 (Client Profile)" to ".NET Framework 4.0".
If none of that fixes the problem, the last glimmer I can see in my crystal ball is based off the name of the code file that you've shown us in the screenshot: ExtraServices.cs. That doesn't sound to me like the name of a control. It sounds like that's just a regular old class. If that's the case, you can't design it because there is nothing for the designer to display. The only code files that can be opened in the designer are those that inherit from System.Windows.Forms.Control or one of its derived classes (e.g. System.Windows.Forms.Form). Just right-click on it and open it as a regular code file.
I'm using visual studio 2010, Qt add-in etc all ok, then create new project using Qt add-in... when doubleclicking *.ui (the actual form) file in VS it opens Qtdesigner, then I put some controls on, but that does not change my code at all :/
Qt form is changed it contains those controls but source files are the same as before even after building my project.
I'm I missing something?
I think Qtdesinger shoult put some code for objects which I created using Qtdesigner.
cos without that we must write all the code as if there were no Qtdesigner so Qtdesinger is useles in Visual studio, the same thing we could just do by hand-coding a form interface.
thanks alot.
EDIT:
OK
I've copied this from Qt site:
You are referencing objects from a .ui file...
The Visual Studio code model parser only parses C++ sources, meaning
that widgets or objects defined in .ui files will not be accessible.
To workaround the problem, the Qt Visual Studio Add-in automatically
generates C++ code from the .ui file by saving the file and running
uic on it. This step is done everytime the project is built. If the
code completion does not work, try to rebuild the project. It is
possible that you have to wait some time, before code completion fully
works after updating an .ui file. For more information, you can refer
to the Modifying Project Properties section. It still does not work...
You should refresh the code model, Intellisense. This is done by
opening the solution explorer, invoking the context menu of the
project and activating the item Update Intellisense.
now it looks that I'm having such problems but this does not help at all, update intelisece. I can't see such option in visual studio,
it looks my visual studio add-in isn't working.
it says "You should refresh the code model" Woot? can someone explain me how to do that please.
here are some output warnings when building my project:
Warning 1 warning : No resources in 'C:\Users\Admin\documents\visual
studio
2010\Projects\VisualStudio\test\test.qrc'. C:\Users\Admin\documents\visual
studio 2010\Projects\VisualStudio\test\RCC Warning 2 warning LNK4099:
PDB 'vc100.pdb' was not found with 'qtmaind.lib(qtmain_win.obj)' or at
'C:\Users\Admin\documents\visual studio
2010\Projects\VisualStudio\vc100.pdb'; linking object as if no debug
info C:\Users\Admin\documents\visual studio
2010\Projects\VisualStudio\test\qtmaind.lib(qtmain_win.obj)
I'm going to explain a little bit how things work and the relationships between the files, and hopefully this will solve your problem.
When you edit the ui file using the designer all changes are made to the ui file itself. Then when you build a couple of things will happen.
First... a custom build step will be run on the ui file. This build step runs "uic" as Macke said, and will generate a file called "ui_thenameofyouruifile.h". Where this file is located depends on your project settings, but if you look in your project you should see a folder called Generated Files in your project.
If you look in there you should see the newly generated file. This is the code that is "changed" when you make changes to your form. Now if this file is not updated, or does not exist at all, then somehow your project settings got messed up. In this case I would remove your .ui file from the project and re-add it. The add-in should do it's magic and add all the stuff you need. Build again and it should work. (I assume that is probably your problem)
The second thing that should happen when you build, is that the class that uses your ui file should recompile. Generally when you create a ui file, you also create an accompanying .h and .cpp file. This is where we do any of the fun logic that we might need in our window. The Qt designer will never ever change this class.
In the header file we refer to the ui file by doing this:
namespace Ui {
class thenameofyouruifile;
}
#include "ui_thenameofyouruifile.h"
and then we add a member variable
Ui::thenameofyouruifile UI;
There are a couple of ways to do this, but basically that's the idea. The add-in is supposed to configure your project so that the directory where the generate files go is included in the "additional include directories" in your project settings, but that is another place to check to make sure that your code is really linking with the correct generated file.
If Qt Add-In installed properly, it should generate the custom build step for Qt related files (.ui or moc file). I have not tried Qt Add-in with VS 2010, but with VS 2008 it's okay.
The work-around for your problem, you need to add manually the custom build step for each ui file you have in the project. To do this, the step is:
Right clicked the ui file, and click the properties (I'm using VS-2008 to do this step, and expect this may not be much different in VS 2010).
Under custom build step, add this in the command line: "$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_$(InputName).h" "$(InputPath)"
And add this under output: ".\GeneratedFiles\ui_$(InputName).h"
And this under additional dependencies: $(QTDIR)\bin\uic.exe. Then click apply / ok.
If this is done, the ui file is compilable, (when you right click it, it can be compiled), so when the ui file content change, the new ui code (.h) file is regenerated.
Alternatively, to reset the VS project file (vcprojx) you can create Qt project in Qt creator, (or if you have already one), and then convert the Qt creator project (.pro) into vcproj using this command line:
qmake -spec win32-msvc2010 -tp vc
This will create the vcproj with the proper custom build step for you (in case you have many ui files, then you don't need to do the first approach).
If you've created a Qt widget using the new class wizard, stuff should work as expected.
I.e. your .ui files are compiled by Qt's uic to .cpp files, i.e. you need to build your project to get these changes into the ui-class.
So, the .ui files should be added to the project, and have some special build rules that invoke 'uic' on them. If that's not the case, try and re-add them to your project (that way, the Qt add-in should configure the build rules)
Normally, you have a class that inherits QWidget which then includes the compiled cpp-class, by one way or another, usually as a member variable (but inheritance is an option too).
Adding an .ui-file straight up should work too (if you're in a Qt project, which you are..), but obviously something is wrong.
Does the example projects work as expected?
I'm getting this error in visual studio 2008 in a Mobile Desktop application .NET 3.5.
Could not find type 'MyNamespace.MyType'. Please make sure that the assembly that contains this type is referenced. If this type is a part of your development project, make sure that the project has been successfully built.
This shows up when opening a form. The type that it can't reference is a user control that is part of the same project. Nothing is wrong with the namespaces. This is maddening -- the project builds just fine.
Also, the referenced control is not a generic class like in this article: "Could not find type" error loading a form in the Windows Forms Designer
UPDATE: well now later it seems to be working. This seems to be a sporadic problem...
Is the actual line that is causing a problem in the Form.designer.cs/vb file? Occasionally there are name qualification issues that result in the error you are seeing. Try opening up the designer file and changing the name as follows
C#
global::MyNamespace.MyType
VB.Net
Global.MyNamespace.MyType
After that, rebuild and reopen the designer