Can anyone please guide me how can I convert Add-Ins to VSPackage Extention without recreating/replicating everything into VSIX?
I have one addin which is supporting VS2010 to VS2013. I have everything in .sln. I want to migrate/create .addin into .vsix for compatibility issue of VS2015. After few research, I have found that the code what is written in IDTCommandTarget.Exec method has to run into my custom command class of vsix project...
So, I created a new .vsix project in same solution & add a reference of my .addin project into .vsix project and I am able to load initial controls of my addin project as like below...
enter image description here
but as per the code, I want to create CreateToolWindow2 on double click of my tree node but I am getting following error (null AddInInstance)...
enter image description here
Can anyone please guide me how can I create an Instance of AddIn class to create ToolWindow2?
This is not quite the way to do this. You create a .VSIX project, then add a Custom Command, and you add the code/logic that was in your old addin's Exec method, to the custom commands MenuItemCallback method.
Note, you no longer need to programmatically create the menus/commands, toolbars, etc. VSPackages have an entirely different (and much more effective way) via the .VSCT file.
FAQ: Converting Add-ins to VSPackage Extensions
To convert an add-in to a package is not easy or trivial, you need to use .vsct file to create menus, toolbars, commands, etc.
About toolwindows:
The usual way for packages is:
HOWTO: Create a toolwindow with a ToolWindowPane class in a Visual Studio package
http://www.visualstudioextensibility.com/articles/packages/
But you can do it in the same way as add-ins:
HOWTO: Create a toolwindow without a ToolWindowPane class in a Visual Studio package
(same link)
About not "duplicating everything" when migrating an add-in to a package, see my post:
Strategies migrating from Visual Studio add-ins to packages
Related
I am trying to organise an Android project's layout files. Having already worked with MVC, I tried to apply that architectural pattern to the Android project.
Suppose I have a folder structure in my Android project:
Areas > SomeAreaName > Views > details_layout.xml
Setting the Build Action on "details_layout.xml" to AndroidResource results in an "invalid file path" error which is understandable as Android does not allow for files in different locations other than the predefined "res" folder and subfolders.
Is it possible to create a custom Build Action (e.g. AndroidResourceMvc) that can utilise the existing AndroidResource Build Action and with the added ability to appropriately map layout files? If so, how would I go about this?
I've looked at the AndroidResource file and with it being internal and private I don't really have access to it. Neither am I able to just use the raw source code as it imports some namespaces that I also do not have access to (or I just can't seem to find them if they're publicly available).
I'm using Visual Studio 2019 and a Xamarin Android C# project.
I have searched extensively and cannot find another person on the planet with this problem...
The symptoms are:In Visual Studio 2012, on a MVC 4.0 Project that was upgraded from VS2010 and is configured for dual version editing from VS2012 and VS2010. When I right-click on the Controllers Folder and select Add->Controller... from the context menu, I get an "Object reference not set to an instance of an object" error from Visual Studio.
The existing code in the project runs fine, and if I use the Add->New Item option instead, and pick the Controller from the dialog box, then I can add a blank controller. I just cannot add a typed controller using the method above.
If I however create a new MVC4 Project, then I can add typed controllers again using the same menu, so the problem does not exist in Visual Studio's installation, it has to exist in the Project File. I have also checked the references between my project and a new MVC Project and all the new project references are included in my project.Has anyone experienced something similar?How do I fix this?
The issue seems to have been caused by an incomplete install/registration of the MvcScaffolder package.
The following process resolved my issue for me.
Start Visual Studio and open the project. Open the Package Manager Console. (This was the "trick" or missing piece of information that led to the solution...)
Here I saw the following error caused by the PowerShell script used for registration:
New-Object : Could not load file or assembly 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
At <ProjectPath...>\packages\MvcScaffolding.1.0.9\tools\registerWithMvcTooling.ps1:163 char:27
+ $newProvider = New-Object <<<< $powerShellScaffolderProviderType($mvcScaffoldingProvider)
+ CategoryInfo : NotSpecified: (:) [New-Object], FileNotFoundException
+ FullyQualifiedErrorId : System.IO.FileNotFoundException, Microsoft.PowerShell.Commands.NewObjectCommand
When I checked the registered scaffolders from the Package Manager Console I got:
PM> get-defaultscaffolder
DefaultName ScaffolderName
Action MvcScaffolding.Action
Controller MvcScaffolding.Controller
CustomScaffolder T4Scaffolding.CustomScaffolder
CustomTemplate T4Scaffolding.CustomTemplate
DbContext T4Scaffolding.EFDbContext
Mailer Mailer.Razor
Repository T4Scaffolding.EFRepository
UnitTest MvcScaffolding.ActionUnitTest
View MvcScaffolding.RazorView
Views MvcScaffolding.Views
So clearly the scaffolders are configured to use the MvcScaffolding package, but the package had a registration error.
A quick search for the error provided this link http://mvcscaffolding.codeplex.com/discussions/437692 which refers to https://visioautomation.codeplex.com/discussions/397034 that suggests installing PowerShell 3, which is actually part of the Windows Management Framework 3.0, available from http://www.microsoft.com/en-us/download/details.aspx?id=34595. I picked the Windows6.1-KB2506143-x64.msu file when prompted because I’m running Win 7-64-bit.
Restart the PC after installation, re-open Visual Studio and the project and look at the Package Manager Console. If the error is gone, then so is the controller problem.
I had this problem on VS2012 on Win8, We where working on a project that we started developing on VS2010 and i wasn't able to create new controllers with the CTRL+M, CTRL+C shortcut.
Opening any project and re-installing MvcScaffolder and its dependencies under Manage Nuget package have fixed this for me.
Didn't have to restart VS2012 at all.
Maybe your existing project have wrong ProjectTypeGuids element in .csproj file?
Right one for MVC4 is {E3E379DF-F4C6-4180-9B81-6769533ABE47}.
Try to compare what project type do you have in new project and in your existing project.
The preferred answer of installing the Windows Management Framework 3.0 did not work. The download "Windows6.1-KB2506143-x86.msu" did not work on my Windows 7 32 bit system. It failed with the error "The update is not applicable to your computer".
Reinstalling MVCscaffolding with Manage Nuget Packages did not work.
My ProjectType GUID was correct.
Microsoft Web Developer Tools was already installed.
Deleting and recreating the solution didn't work.
It was necessary to repair the Visual Studio 2012 installation from the install disk to fix this issue.
Installing "Microsoft Web Developer Tools" fixed this for me. Related:
How do I open a csproj with ProjectTypeGuids 349c5851-65df-11da-9384-00065b846f21?
{E3E379DF-F4C6-4180-9B81-6769533ABE47} - MVC4 Project
{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - CSharp Project
{349c5851-65df-11da-9384-00065b846f21} - Web Application Project (this is what you need web dev tools for)
The update Windows6.1-KB2506143-x64.msu worked for me. The problem started after a full SpyWare software scan. I think that it removes more things than the usual. So, back to normal life.
I had the same problem, im using database first, and it was because i have changed the .edmx contex.tt to generate the contex.cs with the connection name set to a custom method,
: base(sqlHelper.getMainConnectionString())
every time, before i change/update the .edmx, i need to change the connection name to it's creation defaults:
: base("name=YourWebconfigConnectionstringName")
rebuild the project and it works again
Answer:
Check your connectionstring string and provider parameters at the webconfig, then delete and recreate the .edmx this will force the generator to rebuild all the database objects, metadata included OR delete all tables in the designer, change the contex.cs to the default creation name, rebuild the project, add the tables, rebuild the project, it shoul work again.
This problem manifested on a target MVC5 project using VS2017.
Like the original op, a new project was attempted to perform an Add Controller with EF scaffolding against ApplicationUser. The error did initially manifest until a single user was registered forcing the database to be created. After that, add scaffolding worked without incident. I think this makes sense because the entity didn't really yet exist before the first registration, although I will stand corrected if someone more knowledgeable than myself has a more accurate explanation. But because Add Controller worked with a new project, just as the original op determined, it didn't seem to be a VS2017 installation problem. This pointed to something wrong with the taret project.
At this point in the target project an Undo All in Team Explorer was executed to get the project back to a previously working point. While this might be accomplished by getting a specific version, for this target project all that was required was an Undo All. A word of caution: in the case of this specific project, before undoing, the Package Manager was used to rollback the database to the starting point that would match with the Undo All. If one performs a get specific version, be sure to check if the database needs to get rolled back to the proper configuration. After resetting all the project changes, the object reference not set to an instance of an object error was no longer present during the Add Controller operation, fixing the error within the target project.
I post this response somewhat reluctantly because I am unable to duplicate the error, and I am unsure of what actually caused the problem in the first place, but this is a particularly nasty error if one is in the middle of a project and Add Controller starts failing. I figured if someone has this problem and rolling back the current change set might fix it for them, like me they will be thankful. If I later determine the pattern of activity that caused the problem to crop up in the first place, I'll surely add more to this post.
I'm running VS 2019 Enterprise, ASP.NET Core 3.1.3.
I was trying to add MVC controller with views using Entity Framework (EF) after scaffolding in database first approach.
I run on this issue because one of the tables in my ER model was missing primary key.
That table was connected to table for which I tried to generate MVC controller through another table that has primary key so I didn't noticed initially that error.
I’ve created a new C# asp.net mvc 4.0 (beta) Internet Application and I’m having a somewhat odd behavior in the Add View dialog in Visual Studio 2010 (sp1).
When I decide to create a strongly-typed View, inside the Add View dialog, the Model class dropdown does not show my ViewModel class.
For the record, yes I did compile the application before triggering the Add View dialog.
I believe I have pinpointed the issue but do not know how to fix it.
Below are the repro-steps if anyone cares to reproduce the behavior:
In Visual Studio 2010 (sp1), create a new C# asp.net MVC 4.0
(beta) Internet Application.
Inside the Models folder, create a new simple class called
“GazouViewModel.cs”
Build the application, open the HomeController, right-click the
Index() ActionResult and select Add View…
In the Add View dialog, check the “strongly-typed view” checkbox and
in the Model class: dropdown, you’ll notice your “GazouViewModel”
In Solution Explorer, right-click your project and select “Manage
NuGet Packages”
Search, find and install the “Bootstrapper.Autofac” package.
Rebuild the application and verify if your “GazouViewModel” still
displays inside the Add View dropdown’s dialog.
The “GazouViewModel” should still be displaying in the dropdown.
In Solution Explorer, right-click your project and select “Manage
NuGet Packages”
Search, find and install the “Autofac ASP.NET MVC4 (Beta)
Integration” package.
Rebuild the application and verify if your “GazouViewModel” still
displays inside the Add View dropdown’s dialog.
The “GazouViewModel” should still be displaying in the dropdown.
In Solution Explorer, right-click your project and ADD a new class
(Class1.cs) anywhere it doesn’t matter.
Make that Class1 implement IAutofacRegistration and implement the
interface.
Rebuild the application and verify if your “GazouViewModel” still
displays inside the Add View dropdown’s dialog.
The “GazouViewModel” is no longer showing inside the Model class
dropdown.
It appears that as soon as I create a class that implements the IAutofacRegistration interface and build the application, I’m no longer capable of viewing my ViewModels in that dropdown.
Can anyone confirm if they are getting the same results as me?
And more importantly, how can one fix this?
IMPORTANT: I have tried the exact same steps with an mvc 3.0 application and the exact same behavior occurs…so this is not relevant to the BETA version.
Sincerely
Vince
If you get error message: "Running transformation: The input file appears to be using a schema version not supported by this template. This may lead to compile errors. Please use 'Add New Generated Item' to add an updated template".
You are used EF 5.x. You have to add metadata for EF 5.x to your T4 template. In file header call DefineMetadata()
<## template language="C#" debug="false" hostspecific="true"#>
<## import namespace="System.Text.RegularExpressions" #>
<## include file="EF.Utility.CS.ttinclude"#><## output extension=".cs"#><#
DefineMetadata();
at the bottom of your template create method
private void DefineMetadata()
{
TemplateMetadata[MetadataConstants.TT_TEMPLATE_NAME] = "CSharpDbContext.Types";
TemplateMetadata[MetadataConstants.TT_TEMPLATE_VERSION] = "5.0";
TemplateMetadata[MetadataConstants.TT_MINIMUM_ENTITY_FRAMEWORK_VERSION] = "5.0";
}
I solved this issue by beeing mad in like 2 hours and then deleting the Assembly.cs from the Properties-folder in the solution. After I made a rebuild of the solution, the "Add-view" model-dropdown suddently could find all my ViewModels, strange enough.
I guess the assembly version defined in Assembly.cs somehow got mixed up with the actual version used in the project. Anyhow, it works now for my case.
What worked for me was to simply build the solution after creating my model. Then I was able to find my model in the dropdownlist.
I've noticed this issue as well (using MVC 4 Beta on Visual Studio 2010). Re-starting Visual Studio solved the problem for me.
Just another solution to add to the pile as none of the other ones worked for me. This is another example of Visual Studio being terrible at handling long file paths and namespaces.
In my case the namespace was too long to display in the "Model class" dropdown. Shortening the namespace (a ridiculous pain in of itself) made the drop down work again!
UPDATE: As of this writing, I can no longer reproduce the error. Perhaps the NuGet packages I use have been updated to a newer version and incidentally fixed the error.
I will mark this post as closed.
Thanks for everyone’s input on this!
Vince
Just Clean and build your solution. It worked for me.
Using VS 2010 and MVC 3.0, at one point the Add View Model class dropdown was not showing any classes for me. Ivan's suggestion of restarting VS appeared to work for me.
I tried deleting AssemblyInfo.cs, did a Clean, and a Rebuild, but those didn't resolve the issue. When I restarted VS, the model classes were back in the dropdown.
I realize this is a bit out of date. I had a similar situation where my classes wouldn't load into the View Template wizard. I'm using VS 2012 with MVC3. Everyone else in the team was OK, just luckily old me had issues. After much research and trying lots of things the only thing that has consistently fixed it is running VS in safemode (from the command prompt: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" /safemode). One of my extensions must be causing the issue and by running in Safe Mode those aren't loaded.
We have a client/server application which includes a Windows Service and a Winform client tool. I've managed to create a Wix project in Visual Studio (2010, using the wix 3.5 toolset). I'm using the "harvest" feature on the references instead of specifying every file, because there are many library projects involved.
Problems I'm trying to figure out:
How to include referenced DLLs? Some are in the GAC, some are in a relative path within the workspace. I assume I could list each file explicitly but it seems like there should be a way for Wix to autodetect them.
How to install the service while "harvest" is enabled. All the examples I've seen require adding an explicit element with KeyPath=true. However this doesn't work with the harvest=true setting.
I realize that the harvest functionality might be a convenience which is not feasible when there are more complex things going on. Should I give up on harvesting and just try to specify each file explicitly?
Most of the examples I've seen on Wix have been just snippets of xml files. Is there anywhere I can find complete real-world examples of installing services other non-trivial setup features?
Use WixEdit. http://wixedit.sourceforge.net/
It's very easy to import an entire folder using it.
Also, check out the great WiX tutorial here: http://www.tramontana.co.hu/wix/
5.4 Services Rendered
Services can be installed and started automatically.
http://wix.tramontana.co.hu/tutorial/net-and-net/services-rendered
For even more information, check out more WiX documentation here: http://wixtoolset.org/documentation/manual
I am trying to create a project wizard and am totaly new to the open tools api.
I got the following questions.
Is it possible to save the project to a specific loaction and if so how can I do that. My wizard asks for the location.
I create a new form but it has the name Form1. I like to give it a specific name. How can I do that?
I like to copy a datamodule to my project. How can I tell the wizard to copy the file and save it in the project directory with a different name?
As a start look at this question Create a Simple Delphi IDE Expert
look also here
http://www.mustangpeak.net/ (view the wizard section) and here:
http://www.tempest-sw.com/opentools/
best regards,
Radu