Giter VIP home page Giter VIP logo

nubuild's People

Contributors

brentspell avatar dtewinkel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nubuild's Issues

NuBuild fails with NuGet 2.6 and 2.7

VS2010 with NuGet 2.6 or NuGet 2.7, NuBuild 1.6 gives error: There was an error generating the XML document (InvalidOperationException) NuBuild(61,7).
With NuGet 2.5 it works.
Running the build from MSbuild works OK.
Unfortunately it is not reproducable on all systems. Is there any way we can provide additional infomation?

Doesn't work with projects without an 'AnyCPU' configuration

Most of our VS projects have AnyCPU build configurations removed, instead using specific configurations such as x86 or x64. NuBuild projects seem to want an AnyCPU configuration on projects that are referenced to them.

I think the fix would be to allow NuBuild projects to have other configurations like x86 and x64 so the Platform property can match that of referenced projects.

Here are the steps to reproduce:

  1. Create a new empty Visual Studio solution.
  2. Add a new empty C# console application project to the solution.
  3. Add a new NuBuild project to the solution.
  4. Add the C# project as a reference to the NuBuild project.
  5. Ensure NuBuild project builds without error.
  6. Create an x86 configuration for the C# console application project and the solution.
  7. Remove the AnyCPU solution configuration and C# console application project configuration (NuBuild project configuration cannot be changed or removed)
  8. Build the solution.
  9. Compilation fails with error:
    The OutputPath property is not set for project 'NuBuildTest.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='AnyCPU'. This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.

Change encoding of .nuspec file to UTF-8

Currently the .nuspec file in the project template is encoded in UTF-16LE. This wouldn't be a problem, except that git diff seems unable to work with this encoding (it considers the file as binary). Unless there is a compelling reason to use UTF-16, I suggest using UTF-8 instead.

Unable to install NuGet packages INTO the NuBuild project

It's not possible to add NuGet packages (eg. custom T4 files) to this new project type, because NuGet handles only the known project types. It's hard wired, see SolutionWalker.CreateProjectNode.

The only solution is to "downgrade" this standalone project type to a sub-type (aka flavor). This effects VS only, the build process doesn't care about VS extensions.

This is a BRAKING CHANGE!!!

  • .nuproj extensions has to be changed back to .csproj (or at least I was unable to add new project templates with different extension)
  • in .sln the guid of the project's type changes back to C# Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "...", "....csproj", "..."
  • .csproj gets a new property, NuBuild as subtype and C# as project type, <ProjectTypeGuids>{e09dd79a-4488-4ab9-8d3f-a7eee78bf432};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
  • we can add new fancy WinForm property pages and remove C# specific pages

As a side-effect:

  • put <OutputPath> and <NuBuildIncludePdbs> properties under configuration specific property groups (eg. Debug, Release)

NuBuild 1.8 only works with Visual Studio 2012 installed

NuBuild 1.8 only works with Visual Studio 2012 installed. I had a set-up with just VS2010 installed. NuBuild then gives the error: "C:\Program Files (x86)\MSBuild\NuBuild\v1\NuBuild.targets(51,53): error MSB4066: The attribute "KeepMetadata" in element <_SourceItemsToCopyToOutputDirectoryAlways> is unrecognized. [E:\build-output\builds\twia.validation\deployments\Twia.Validation.NuGet\Twia.Validation.NuGet.nuproj]"
Installing VS2013 did not help. Installing VS2012 resolved the error. In the environment we use NuBuild we have quite a few machines still with just VS2010 installed.

Build tries to recompile source from referenced projects

I have 3 different NuBuild projects in a solution. All 3 reference library projects in the same solution. For the first 2 everything is fine. For the last one I get build errors related to source code from one of the referenced projects. This might be happening for all 3 projects but I only get compilation errors in one of them. Looking at the build log the Sources property for the project is getting set to the list of source files from one of the referenced library projects (not all of them). This particular set of source files have a dependency on an assembly that isn't included in a default C# project but is part of the framework (System.ComponentModel.DataAnnotations). I cannot figure why the NuBuild project would be trying to compile the source file for a referenced project. Nevertheless this is causing a build failure.

Add support for package subdirectories in project references

Add the ability to specify a custom package subdirectory (ex: lib\net40, lib\net45, etc.) for each project reference in a NuBuild project. For example:

... ... lib\net45

would place the project's assemblies under the lib\net45 folder in the package.

Cleaning a NuBuild project builds its dependencies

Currently, if you build a NuBuild project, it invokes the build on all referenced projects, in order to determine their targets. This is also done in the clean target, which causes referenced projects to build when cleaning. The clean target should not build referenced projects.

"Copy to Output Directory" property for FileNode-s.

Our internal (NuGet and Install package) publishing workflow uses XML files in projects (like .nuspec) to specify the publishing parameters, it's essential to copy files next to the .nupkg file in to the Output Directory.
I started to implement it, I will send a pull request when it's ready.

Adding references to .NET 4.5 library projects causes a warning message

Currently, NuBuild projects do not specify a TargetFrameworkVersion project property, so VS defaults this property to .NET 4.0. When adding a reference to a .NET 4.5 project, the IDE displays a warning message. The user should be able to specify the framework version in project properties, and the template should reference .NET 4.5 by default.

Using replacement tokens in metadata/id in .nuspec.

NuPrepare replaces only $id$, but it's valid to include eg. $platform$ when TFS builds separate packages for different configurations, NuGet.Core resolves it, but the filename remains something.$platform$.1.2.3.nupkg.

Token replacement does not work so wel from MSbuild

If a solution is built using MSbuild (not Visal Studio), then tokens such as $configuration$ can not be replaced.
Error: C:\Program Files (x86)\MSBuild\NuBuild\v1\NuBuild.targets(61,7): error : The replacement token 'configuration' has no value. (InvalidOperationException).
ProjectCollection.GlobalProjectCollection.LoadedProjects appears to be empty.

Nullreference Exception

When: If there are no references in the project, and a replcament token such as $configuration$ is used.
Error: C:\Program Files (x86)\MSBuild\NuBuild\v1\NuBuild.targets(61,7): error : Object reference not set to an instance of an object. (NullReferenceException)

VS2013 (PCL project); "The replacement token 'XX' has no value"

I have a portable class library (PCL) project in Visual Studio 2013, and a NuBuild project for creating NuGet package releases. The two projects are configured identically to the projects in the NuBuild sample project "Replacements," except for the fact that my library is targeted towards multiple platforms, via PCL.

When I build my project, I get the following NuBuild error:
"The replacement token 'XX' has no value".

'XX,' in this case, is whatever the first replacement token to appear in my NuSpec file is.

This is when using NuBuild version 1.10, acquired from the Visual Studio Extensions Gallery.

Possiblility to have version in package name.

By default NuGet pack puts the package version in the package name. For us this is very important, as we ened to be able to store multiple version side-by-side. NuBuild leaves the version out.
Proposed solutiuon is to add an option (checkbox) to the project property pages to allow adding the version to the package name, in the same way the default NuGet pack command does.

(v2.x) Create upgrade path from v1.x to v2.x

New version should supports both the .nuproj and .csproj files, emit a simple warning building .nuproj that upgrade is possible, and add "upgrade solution" and "upgrade project" menu items to upgrade .nuproj files to .csproj automatically.

Only the VS support differs between v1.x and v2.x, the MSBuild/NuBuild.targets build process is basically the same. V2.x uses project subtype, that means different GUI, but uses the same properties in .csporj files, that's why MsBuild builds them identically. The project subtype is required to be able to install NuGet packages into the NuBuild projects (eg. default/sample/project-specific .nuspec files).

Output folder is not re-created on build

If the output folder gets lost (e.g. because GIT does not deal well with empy folders) then NuBuild does not re-create the output folder on build, and the build fails with a DirectoryNotFoundException.

Folder lib/net35 is not created

Hi,

if you reference a .NET 3.5 library, then the folder lib/net35 is not created, because the TargetFrameworkAttribute type is only available since .NEt 4.0

Can't add Linked files to nuget package?

I'd like to include a javascript file in my nuget package, but I don't want to actually COPY it and the option for adding a linked file isn't present when you click "Add Existing Item"

(vs 2012)

image

Warning on referenced projects

NuBuild show a warning symbol on all referenced projects (yellow triangle with !). In the error list there are no warnings or messages. The reference projects are included in the package. What does the warning mean?

Incremental build is broken

Even when the Build target's Inputs and Outputs attributes are valid (NuSources and NuTargets are perfect), it always creates a fresh new package file. I can't figure out why.

NuBuild throw NullReferenceException if no references added.

Version Source set to Manual and all files referneced in element. No references to projects are needed, or even desired. Result is a failed build.
Error in Output: C:\Program Files (x86)\MSBuild\NuBuild\v1\NuBuild.targets(55,7): error : Object reference not set to an instance of an object. (NullReferenceException).

VS warning for referencing higher framework version, even when the referring NuBuild project is v4.5.

After setting <TargetFrameworkVersion>v4.5</...> in .nuproj, when I add a .net45 project reference, VS2012 still displays a warning: "The target Framework version for the project ... is higher than the current project Target Framework Version".

When I add <TargetFrameworkMoniker>.NETFramework,Version=v4.5</...> it works!!!

It seems to me as a bug in ProjectNode.GetProjectOptions(), it searches for this property, instead of combining the TargetFrameworkVersion and TargetFrameworkProfile properties.

Please add support for VS2013

I would like to skip VS2012 for a number of project still on VS2010, and migrate them straight to VS2013. Please add support to install NuBuild on VS2013.

Files not being added correctly

I have some powershell install scripts in a tools folder which are referenced in the nuspec file

<files>
    <file src="tools\**\*.*" target="tools" />
</files>

The package explorer shows nothing for the package contents and when looking at the zip it shows the following encoded paths

image

Add support for XML doc file

Please add support for including the XML doc file as an option like the PDB. This eliminates the need for having to add them manually.

Error on replacing $configuration$

When compiling the sample project I get the following error:

Error 1 The imported project "G:\OpenSource\NuBuild\Samples\Replacements\Package\NuBuild.tasks" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. (InvalidProjectFileException) C:\Program Files (x86)\MSBuild\NuBuild\v1\NuBuild.targets 55 8 Package (Replacements\Package)

Custom version

Hi

I try to create solution level package and control it version manually. I try various options available in the NuBuild but any of them is relevant for my case.

  • Auto - i can control only the third number
  • Library - i do not have any reference DLL nor other file.
  • Manual - is not the case while i have more than one nuspec files to manage.

I investigate the possibilities and i think the best could be us ein nu spec $vesrion$ source Library and in the MSBuild project file set the Version property to some value. I found that i can use the replaceable for any MSBuild property so such option available for $version$ will be great extension point.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.