I'm trying to create a nuget package that contains my "starter project". This is a project which I use to start every Umbraco project.
This starter project has the following structure:
Solution:
Umbraco project
CustomControls project
In short, I want Nuget to:
1) download a specific version of Umbraco, and put it in the Umbraco project folder
2) Add the CustomControls project
I can put the CustomControls project in the "Content"-folder, but I can't get the Umbraco project in my solution at the top level. Right now, NuGet seems to create this:
Solution:
Umbraco project => CustomControls project
So the CustomControls project is inside the Umbraco project, which doesn't serve my purpose as it has to remain separate.
So two seperate projects inside one solution.
How do I go about this?
One of the parameters in Install.ps1 is called $project, and it is a reference to the EnvDTE Project object for the project into which your package has been installed. You should be able to call DTE.Solution.AddFromFile() to add another project to the solution.
Related
I have a solution in Visual Studio 2013 with more C# project files that have source code in common but are targeting for different platforms (.Net, WinRT, .Net Micro Framework and so on).
All the csproj files are under the same directory.
These projects use a Nuget package that is available for all the above platforms itself.
If I add this Nuget package for one of the project (ex. .Net), the package.config file is created and inside has reference to that target (ex. .Net). The package is downloaded in the packages folder.
If I try to add the same package but for a different target to another project in the solution, the UI tells me that the package is already installed. It's true because a package.config file is already there but I'd like to have the same package for a different target.
So my question is the following : how can I add the same Nuget package to all different projects but with different targets ?
Thanks,
Paolo
Unfortunately, I don't think NuGet supports your scenario.
NuGet expects the packages.config file to be in the same folder as the .csproj file. There should be a 1-to-1 relation between these files. You should create a separate folder for each project rather than keep all .csproj files in the same folder.
If you want to share code across multiple projects, the easiest way is to use the new Shared Project support in Visual Studio. Normally this only applies to Universal Projects, but there is an extension[1] that you can install that enables Shared Projects for all project types.
Simply create a new Shared Project. Add all you common code to it. Then in your platform specific projects, you can simply Add Shared Project Reference.
Since each project is now independent, NuGet will add the appropriate package.
Hope this helps. Good luck!
[1] Shared Project Reference Manager https://visualstudiogallery.msdn.microsoft.com/315c13a7-2787-4f57-bdf7-adae6ed54450
I have created a NuGet gallery in my company.
I want to create and publish a solution level NuGet package.
Everyone who will install the package will not get a dll but an entire project added to his/her visual studio solution.
Just like adding an existing project, the user will get a project with source code classes and everything is ready to use.
Just build it and use it.
I know it's possible, but couldn't find any documentation.
Anyone?
It is possible to add any files (not only .dll) and even directory structures to a NuGet package, so in theory you could store all files belonging to a project in a package and publish that. However, it is only possible to install NuGet packages into an existing project, meaning that you won't be able to add the packaged files as new project to any solution. In addition, the contained files will be put to the solution's packages folder, not to a solution or project folder.
As an alternative, consider creating a Template project instead of a NuGet package, as explained in How to: Create Project Templates and my blog post Creating template projects. This will result in a .vsix file that any developer can install as Visual Studio Add-In, the templated project will then appear in Visual Studio's File -> New -> Project... dialog as new project type and can be added to any solution.
Similar to your NuGet gallery, it is also possible to create a private Visual Studio Gallery to share such Add-Ins within, for example, a company, as explained in this MSDN article.
I found this statement in the help of a project that I want to import it named "storm-
election"
This is a simple demo app based on the storm-starter project. https://github.com/nathanmarz/storm-starter.
So, I imported storm-starter project successfully. How can I import storm-election project?
Can I import a project on another imported project ?
Eclipse 4.5 (starting from Mars M5) will include a mechanism that allows to nested projects under their parent one.
You can already give it a try by accessing the latest snapshot build of Eclipse Platform (which is a subset of the IDE, but which contains the change) http://download.eclipse.org/eclipse/downloads/drops4/N20150124-1500/ , when Mars M5 is ready, you'll be able to access from http://eclipse.org/downloads a full featured IDE which also contains this feature.
Reference https://bugs.eclipse.org/bugs/show_bug.cgi?id=427768
You cannot create a project under any project, like you create folder(s) under folder, folder(s) under project, file(s) under project and file(s) under folder.
All projects in a workspace are siblings no child and parent relationship exists between projects.
I am not able to see storm-election project in the link provided, but you can import this project in the same way as you imported storm-starter project.
I have two entity framework solutions in Visual Studio 2012. I used Nuget to download EF5 on both.
In first solution/project I created a class library and I want to add it to the project in solution 2.
I am not sure how to add it. I noticed that there is a folder
..\..\packages\EntityFramework.5.0.0\lib\net45
Two questions:
Where is the folder(packages) coming from? (Just a guess it is from Nuget but not sure..)
How to add the reference?(Browser to this folder to locate it or using Nuget?)
First: It's one folder up to your project folder and actually it's beside your solution, it has been downloaded from http://wwww.nuget.org website.
Second: Add it through NuGet(by clicking on project and select Manage Packages or using the command line power-shell Install-Package) and it will manage it to not download it again and reference to the same file
I often use a eclipse plugins to quckliy generate project directory structure, for example Spring plugin helps to create WebContent folder to hold WEB-INF contents. But sometimes I create a projects with specific directory structure, always the same. Something like this:
[project_name]
-folder1
-folderA
-folderX
-folderB
-folder2
-dirC
-folder3
I know, that I can write my own ant/maven script to generate specific folders, but I don't want to manualy invoke scripts each time after project creating. I want to create a project template which I would use in the future.
What is the best way to create a this feature?
Should I create something like plugin? If yes, how would I do it?
If you don't want to use a plugin or a script to generate the project structure, you're pretty limited.
Since you can create a project from existing source, you could create the folder structure on your filesystem, and whenever you are creating another project, tell Eclipse to "Create Project from existing source" and point it to your template folder.
If you want to write a plugin, you'll want to contribute a org.eclipse.jdt.ui.actions.OpenProjectWizard that creates the folder structure as part of the project generation. A good tutorial can be found at: http://cvalcarcel.wordpress.com/2009/07/08/writing-an-eclipse-plug-in-part-1-what-im-going-to-do/%20
Maven has a concept of project templates called archetypes which is very similar to what you need. It defines the project structure, files, etc and can be customized upon creation.
If you install the Eclipse m2e maven plugin then you can create a new project from template with a few click
File / new Project / Maven project / Select archetype
You can use this feature even if you dont want to use maven later. You can auto generate ant scripts or anything like that. You can convert an exisint project into an archetype or create a new one from scratch, desciption is here
http://maven.apache.org/archetype/maven-archetype-plugin/
http://maven.apache.org/guides/mini/guide-creating-archetypes.html