NuGet Version: 3.3.0.212
Latest from the downloads page is 3.3.0.
OS X 10.11.2
Mono 4.2.1
<!-- tmba:OpenRA.Mods.Common thill $ cat OpenRA.Mods.Common.nuspec -->
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>OpenRA.Mods.Common</id>
<version>20151224.0.0</version>
<title>OpenRA.Mods.Common</title>
<authors>OpenRA</authors>
<owners>OpenRA</owners>
<licenseUrl>https://www.gnu.org/licenses/gpl-3.0.txt</licenseUrl>
<projectUrl>https://github.com/OpenRA/OpenRA/</projectUrl>
<iconUrl>http://www.openra.net/images/soviet-logo.svg</iconUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>OpenRA's Mods.Common built for release-20151224</description>
<releaseNotes>https://github.com/OpenRA/OpenRA/wiki/Historical-Changelogs#20151224</releaseNotes>
<language>en-US</language>
<tags>OpenRA</tags>
</metadata>
<files>
<file src="../mods/common/*.dll" target="lib"/>
</files>
</package>
Per creating and publishing:
You need to run 'nuget pack' on the project file, not the nuspec itself. But the nuspec will in fact get picked up.
tmba:OpenRA.Mods.Common thill $ nuget pack OpenRA.Mods.Common.csproj -IncludeReferencedProjects
MSBuild auto-detection: using msbuild version '4.0' from '/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.5'.
Attempting to build package from 'OpenRA.Mods.Common.csproj'.
The method or operation is not implemented.
tmba:OpenRA.Mods.Common thill $ pwd ; ls
/Users/thill/projects/openra/OpenRA.Mods.Common
total 168
drwxr-xr-x 31 thill staff 1054 Jan 18 19:36 ./
drwxr-xr-x 82 thill staff 2788 Jan 18 12:46 ../
drwxr-xr-x 30 thill staff 1020 Jan 18 12:26 Activities/
-rw-r--r-- 1 thill staff 4256 Nov 28 07:36 ActorExts.cs
drwxr-xr-x 10 thill staff 340 Jan 18 12:26 AI/
drwxr-xr-x 3 thill staff 102 Jan 12 20:24 bin/
drwxr-xr-x 6 thill staff 204 Jan 12 20:28 Commands/
drwxr-xr-x 7 thill staff 238 Jan 18 12:26 EditorBrushes/
drwxr-xr-x 19 thill staff 646 Jan 18 12:26 Effects/
drwxr-xr-x 7 thill staff 238 Jan 17 17:31 FileFormats/
drwxr-xr-x 14 thill staff 476 Jan 18 12:26 Graphics/
drwxr-xr-x 6 thill staff 204 Jan 12 20:28 HitShapes/
-rw-r--r-- 1 thill staff 4543 Jan 12 20:28 InstallUtils.cs
drwxr-xr-x 20 thill staff 680 Jan 18 12:26 Lint/
drwxr-xr-x 5 thill staff 170 Jan 18 12:26 LoadScreens/
drwxr-xr-x 3 thill staff 102 Jan 12 20:24 obj/
-rw-r--r-- 1 thill staff 41445 Jan 17 22:41 OpenRA.Mods.Common.csproj
-rw-r--r-- 1 thill staff 872 Jan 18 12:49 OpenRA.Mods.Common.nuspec
drwxr-xr-x 11 thill staff 374 Jan 18 12:26 Orders/
drwxr-xr-x 10 thill staff 340 Jan 18 12:26 Pathfinder/
-rw-r--r-- 1 thill staff 823 Jan 2 19:01 PlayerExtensions.cs
drwxr-xr-x 9 thill staff 306 Jan 18 12:26 Scripting/
drwxr-xr-x 7 thill staff 238 Jan 18 12:26 ServerTraits/
-rw-r--r-- 1 thill staff 978 Jan 12 20:28 ShroudExts.cs
drwxr-xr-x 7 thill staff 238 Jan 17 17:31 SpriteLoaders/
drwxr-xr-x 105 thill staff 3570 Jan 18 12:26 Traits/
-rw-r--r-- 1 thill staff 3718 Jan 18 12:26 TraitsInterfaces.cs
drwxr-xr-x 25 thill staff 850 Jan 18 12:26 UtilityCommands/
drwxr-xr-x 11 thill staff 374 Jan 18 12:26 Warheads/
drwxr-xr-x 51 thill staff 1734 Jan 18 12:26 Widgets/
-rw-r--r-- 1 thill staff 4478 Jan 12 20:28 WorldExtensions.cs
@Phrohdoh would you re-run pack with -verbosity detailed
and paste the output? It should include the stack trace which will help narrow down here this is coming from.
Sure!
tmba:OpenRA.Mods.Common thill $ nuget pack OpenRA.Mods.Common.nuspec -verbosity detailed
MSBuild auto-detection: using msbuild version '4.0' from '/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.5'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild.
Attempting to build package from 'OpenRA.Mods.Common.nuspec'.
System.InvalidOperationException: Cannot create a package that has no dependencies nor content.
at NuGet.PackageBuilder.Save (System.IO.Stream stream) <0x38aab58 + 0x00307> in <filename unknown>:0
at NuGet.CommandLine.PackCommand.BuildPackage (NuGet.PackageBuilder builder, System.String outputPath) <0x38a9580 + 0x0014b> in <filename unknown>:0
ref https://github.com/NuGet/Home/issues/1874#issuecomment-167430812
That looks like a different exception. It could be nuget.exe going down a different path with the verbosity change, but just to be sure would you double check your files path and make sure it's not creating an empty package like it says there.
The second run was on the .nuspec and not the project. Can you please run the exact same command as the first one with verbosity turned on?
Oh wow that's an embarrassing mistake.
I'll run this again over lunch and see what happens.
Here is the correct output.
tmba:OpenRA.Mods.Common thill $ nuget pack OpenRA.Mods.Common.csproj -IncludeReferencedProjects -verbosity detailed
MSBuild auto-detection: using msbuild version '4.0' from '/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.5'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild.
Attempting to build package from 'OpenRA.Mods.Common.csproj'.
System.NotImplementedException: The method or operation is not implemented.
at (wrapper dynamic-method) System.Object:CallSite.Target (System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object)
at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid1[T0] (System.Runtime.CompilerServices.CallSite site, System.Dynamic.T0 arg0) <0x3ed2560 + 0x003ee> in <filename unknown>:0
at NuGet.CommandLine.ProjectFactory.ResolveTargetPath () <0x3ece960 + 0x0094e> in <filename unknown>:0
at NuGet.CommandLine.ProjectFactory.BuildProject () <0x3ece3f8 + 0x0044f> in <filename unknown>:0
at NuGet.CommandLine.ProjectFactory.CreateBuilder (System.String basePath) <0x3ecd9e0 + 0x0004f> in <filename unknown>:0
at NuGet.CommandLine.PackCommand.BuildFromProjectFile (System.String path) <0x36e0970 + 0x0023f> in <filename unknown>:0
at NuGet.CommandLine.PackCommand.BuildPackage (System.String path) <0x36e08f0 + 0x0005f> in <filename unknown>:0
at NuGet.CommandLine.PackCommand.ExecuteCommand () <0x36dab58 + 0x001f7> in <filename unknown>:0
at NuGet.CommandLine.Command.ExecuteCommandAsync () <0x36dab28 + 0x00010> in <filename unknown>:0
at NuGet.CommandLine.Command.Execute () <0x36c6090 + 0x001e4> in <filename unknown>:0
at NuGet.CommandLine.Program.MainCore (System.String workingDirectory, System.String[] args) <0x696b58 + 0x0065c> in <filename unknown>:0
I get the same output if I omit the -IncludeReferencedProjects
flag.
OK, I see. msbuild is not supported on mono, you are supposed to use xbuild instead. I need to find out why xbuild is not kicking in for you
NuGet has not previously supported packing from a csproj outside of Windows. We are currently focused on delivering pack functionality using nuspec with the CoreCLR on Mac. Csproj file support currently requires MSBuild, which is not present on Mac
Okay, should I open a separate issue for the failure of nuget pack myspec.nuspec
which is also caused by the xbuild issue?
If I could get a bit of help I'd be willing to put some hours into solving this but currently I am dead in the water waiting for a fix.
I believe the error there is correct, and you need to fully fill in the nuspec by adding files entries
It does have a <files>
entry:
<files>
<file src="../mods/common/*.dll" target="lib"/>
</files>
missed it before. Can you try something very basic to verify there is no mistake in your setup? We did verify this basic scenario on mono, so I'm suspecting something else might be going on (perhaps files do not exist on disk when you run nuget.exe pack?)
<?xml version="1.0"?>
<package>
<metadata>
<id>LibDependOnMe</id>
<version>1.0.0</version>
<title>LibDependOnMe Test</title>
<authors>Phrohdoh</authors>
<owners>Phrohdoh</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>You can depend on this logger!</description>
<releaseNotes>Test...</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>Test LibTest</tags>
</metadata>
<files>
<file src="bin\Debug\*.dll" target="lib"/>
<!-- <file src="bin/Debug/*.dll" target="lib"/> also tried this -->
</files>
</package>
tmba:LibDependOnMe thill $ test -f "bin/Debug/LibDependOnMe.dll" && nuget pack LibDependOnMe.csproj -verbosity detailed
MSBuild auto-detection: using msbuild version '4.0' from '/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.5'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild.
Attempting to build package from 'LibDependOnMe.csproj'.
System.NotImplementedException: The method or operation is not implemented.
at (wrapper dynamic-method) System.Object:CallSite.Target (System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object)
at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid1[T0] (System.Runtime.CompilerServices.CallSite site, System.Dynamic.T0 arg0) <0x3f20bc8 + 0x003ee> in <filename unknown>:0
at NuGet.CommandLine.ProjectFactory.ResolveTargetPath () <0x3f1cfc8 + 0x0094e> in <filename unknown>:0
at NuGet.CommandLine.ProjectFactory.BuildProject () <0x3f1ca60 + 0x0044f> in <filename unknown>:0
at NuGet.CommandLine.ProjectFactory.CreateBuilder (System.String basePath) <0x3f1c048 + 0x0004f> in <filename unknown>:0
at NuGet.CommandLine.PackCommand.BuildFromProjectFile (System.String path) <0x372b330 + 0x0023f> in <filename unknown>:0
at NuGet.CommandLine.PackCommand.BuildPackage (System.String path) <0x372b2b0 + 0x0005f> in <filename unknown>:0
at NuGet.CommandLine.PackCommand.ExecuteCommand () <0x3725518 + 0x001f7> in <filename unknown>:0
at NuGet.CommandLine.Command.ExecuteCommandAsync () <0x37254e8 + 0x00010> in <filename unknown>:0
at NuGet.CommandLine.Command.Execute () <0x3708a80 + 0x001e4> in <filename unknown>:0
at NuGet.CommandLine.Program.MainCore (System.String workingDirectory, System.String[] args) <0x6e6be8 + 0x0065c> in <filename unknown>:0
.
โโโ LibDependOnMe
โย ย โโโ LibDependOnMe.csproj
โย ย โโโ LibDependOnMe.nuspec
โย ย โโโ Logger.cs
โย ย โโโ Properties
โย ย โย ย โโโ AssemblyInfo.cs
โย ย โโโ bin
โย ย โย ย โโโ Debug
โย ย โย ย โโโ LibDependOnMe.dll
โย ย โย ย โโโ LibDependOnMe.dll.mdb
โย ย โโโ obj
โย ย โโโ Debug
โย ย โโโ LibDependOnMe.csproj.FilesWrittenAbsolute.txt
โย ย โโโ LibDependOnMe.dll
โย ย โโโ LibDependOnMe.dll.mdb
โโโ NuGetTest
โย ย โโโ NuGetTest.csproj
โย ย โโโ Program.cs
โย ย โโโ Properties
โย ย โย ย โโโ AssemblyInfo.cs
โย ย โโโ bin
โย ย โย ย โโโ Debug
โย ย โย ย โโโ NuGetTest.exe
โย ย โย ย โโโ NuGetTest.exe.mdb
โย ย โโโ obj
โย ย โโโ x86
โย ย โโโ Debug
โย ย โโโ NuGetTest.csproj.FilesWrittenAbsolute.txt
โย ย โโโ NuGetTest.exe
โย ย โโโ NuGetTest.exe.mdb
โโโ NuGetTest.sln
โโโ NuGetTest.userprefs
13 directories, 19 files
I did some poking around (with this diff) and got some verbose output, but it may not be of any help.
diff --git a/src/CommandLine/Commands/PackCommand.cs b/src/CommandLine/Commands/PackCommand.cs
index dd52d98..8df2f60 100644
--- a/src/CommandLine/Commands/PackCommand.cs
+++ b/src/CommandLine/Commands/PackCommand.cs
@@ -291,6 +291,7 @@ namespace NuGet.Commands
private IPackage BuildFromNuspec(string path)
{
+ Console.WriteLine("BuildFromNuspec({0})", path);
PackageBuilder packageBuilder = CreatePackageBuilderFromNuspec(path);
if (Symbols)
diff --git a/src/CommandLine/Commands/ProjectFactory.cs b/src/CommandLine/Commands/ProjectFactory.cs
index 358e6ab..199cabc 100644
--- a/src/CommandLine/Commands/ProjectFactory.cs
+++ b/src/CommandLine/Commands/ProjectFactory.cs
@@ -52,6 +52,7 @@ namespace NuGet.Commands
public ProjectFactory(string path, IDictionary<string, string> projectProperties)
: this(new Project(path, projectProperties, null))
{
+ System.Console.WriteLine("ProjectFactory({0}, ..)", path);
}
public ProjectFactory(Project project)
@@ -284,6 +285,7 @@ namespace NuGet.Commands
private string ResolveTargetPath()
{
+ System.Console.WriteLine("ProjectFactory.ResolveTargetPath()");
// Set the project properties
foreach (var property in ProjectProperties)
{
@@ -294,11 +296,17 @@ namespace NuGet.Commands
// (which those passed in via the ctor are) as trying to set global properties
// with this method throws.
_project.SetProperty(property.Key, property.Value);
+ System.Console.WriteLine("SetProperty({0}, {1})", property.Key, property.Value);
}
}
// Re-evaluate the project so that the new property values are applied
- _project.ReevaluateIfNecessary();
+ //_project.ReevaluateIfNecessary();
+
+ foreach (var prop in _project.Properties)
+ {
+ System.Console.WriteLine("{0}:\n\t{1}\n\t{2}", prop.Name, prop.UnevaluatedValue, prop.EvaluatedValue);
+ }
// Return the new target path
return _project.GetPropertyValue("TargetPath");
@@ -793,6 +801,8 @@ namespace NuGet.Commands
private Manifest ProcessNuspec(PackageBuilder builder, string basePath)
{
string nuspecFile = GetNuspec();
+ System.Console.WriteLine(builder.Id);
+ System.Console.WriteLine(nuspecFile);
if (String.IsNullOrEmpty(nuspecFile))
{
@@ -811,6 +821,7 @@ namespace NuGet.Commands
if (manifest.Files != null)
{
basePath = String.IsNullOrEmpty(basePath) ? Path.GetDirectoryName(nuspecFile) : basePath;
+ System.Console.WriteLine("PopulateFiles({0}, {1})", basePath, string.Join (",", manifest.Files));
builder.PopulateFiles(basePath, manifest.Files);
}
diff --git a/src/Core/Authoring/PackageBuilder.cs b/src/Core/Authoring/PackageBuilder.cs
index afa5991..6ecd306 100644
--- a/src/Core/Authoring/PackageBuilder.cs
+++ b/src/Core/Authoring/PackageBuilder.cs
@@ -237,7 +237,7 @@ namespace NuGet
public void Save(Stream stream)
{
// Make sure we're saving a valid package id
- PackageIdValidator.ValidatePackageId(Id);
+ PackageIdValidator.ValidatePackageId(Id);
// Throw if the package doesn't contain any dependencies nor content
if (!Files.Any() && !DependencySets.SelectMany(d => d.Dependencies).Any() && !FrameworkReferences.Any())
@@ -511,6 +511,8 @@ namespace NuGet
private void AddFiles(string basePath, string source, string destination, string exclude = null)
{
+ System.Console.WriteLine("PackageBuilder._AddFiles({0}, {1}, {2}, {3})",
+ basePath, source, destination, exclude ?? "<null>");
List<PhysicalPackageFile> searchFiles = PathResolver.ResolveSearchPattern(basePath, source, destination, _includeEmptyDirectories).ToList();
if (_includeEmptyDirectories)
{
diff --git a/src/VsEvents/VsEvents.csproj b/src/VsEvents/VsEvents.csproj
index ed66a66..c9bee51 100644
--- a/src/VsEvents/VsEvents.csproj
+++ b/src/VsEvents/VsEvents.csproj
@@ -44,7 +44,6 @@
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
tmba:OpenRA.Mods.Common thill $ md ~/projects/csharp/dotnet/nuget2/src/CommandLine/bin/Release/NuGet.exe pack OpenRA.Mods.Common.csproj -verbosity detailed
Attempting to build package from 'OpenRA.Mods.Common.csproj'.
ProjectFactory(OpenRA.Mods.Common.csproj, ..)
ProjectFactory.ResolveTargetPath()
SetProperty(SolutionDir, /Users/thill/projects/openra/)
OLDPWD:
/Users/thill/projects/openra
/Users/thill/projects/openra
CLICOLOR:
1
1
DISPLAY:
/private/tmp/com.apple.launchd.VtOTF1RvUx/org.macosforge.xquartz:0
/private/tmp/com.apple.launchd.VtOTF1RvUx/org.macosforge.xquartz:0
RUST_SRC_PATH:
/Users/thill/projects/langs/rust/src/
/Users/thill/projects/langs/rust/src/
XPC_FLAGS:
0x0
0x0
AUTO_SOURCE_VENV_DEACTIVATE:
true
true
SHLVL:
3
3
TERM:
xterm-256color
xterm-256color
LOGNAME:
thill
thill
__CF_USER_TEXT_ENCODING:
0x1F5:0x0:0x0
0x1F5:0x0:0x0
Apple_PubSub_Socket_Render:
/private/tmp/com.apple.launchd.Gll5xukgum/Render
/private/tmp/com.apple.launchd.Gll5xukgum/Render
LANG:
en_US.UTF-8
en_US.UTF-8
TMUX_PANE:
%3
%3
XPC_SERVICE_NAME:
0
0
ITERM_SESSION_ID:
w0t0p0
w0t0p0
USER:
thill
thill
ITERM_PROFILE:
Default
Default
EDITOR:
vim
vim
PATH:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/thill/bin:/usr/local/sbin
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/thill/bin:/usr/local/sbin
PS1:
\h:\W \u \e[0;36m$ \e[0m
\h:\W \u \e[0;36m$ \e[0m
SSH_AUTH_SOCK:
/private/tmp/com.apple.launchd.VI4HP1G6u7/Listeners
/private/tmp/com.apple.launchd.VI4HP1G6u7/Listeners
TMUX_PLUGIN_MANAGER_PATH:
/Users/thill/.tmux/plugins/
/Users/thill/.tmux/plugins/
TMUX:
/private/var/folders/nm/flcs9rxx14n5rv2b9kh64mlh0000gn/T/tmux-501/default,455,0
/private/var/folders/nm/flcs9rxx14n5rv2b9kh64mlh0000gn/T/tmux-501/default,455,0
HOME:
/Users/thill
/Users/thill
_:
/usr/local/bin/mono
/usr/local/bin/mono
TERM_PROGRAM:
iTerm.app
iTerm.app
TMPDIR:
/var/folders/nm/flcs9rxx14n5rv2b9kh64mlh0000gn/T/
/var/folders/nm/flcs9rxx14n5rv2b9kh64mlh0000gn/T/
EVENT_NOKQUEUE:
1
1
SHELL:
/bin/bash
/bin/bash
LSCOLORS:
dxfxcxdxbxegedabagacad
dxfxcxdxbxegedabagacad
PWD:
/Users/thill/projects/openra/OpenRA.Mods.Common
/Users/thill/projects/openra/OpenRA.Mods.Common
MSBuildBinPath:
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/4.5
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/4.5
MSBuildProjectDefaultTargets:
MSBuildProjectDirectory:
/Users/thill/projects/openra/OpenRA.Mods.Common/
/Users/thill/projects/openra/OpenRA.Mods.Common/
MSBuildProjectDirectoryNoRoot:
Users/thill/projects/openra/OpenRA.Mods.Common
Users/thill/projects/openra/OpenRA.Mods.Common
MSBuildProjectExtension:
.csproj
.csproj
MSBuildProjectFile:
OpenRA.Mods.Common.csproj
OpenRA.Mods.Common.csproj
MSBuildProjectFullPath:
/Users/thill/projects/openra/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
/Users/thill/projects/openra/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
MSBuildProjectName:
OpenRA.Mods.Common
OpenRA.Mods.Common
MSBuildStartupDirectory:
MSBuildThisFile:
OpenRA.Mods.Common.csproj
OpenRA.Mods.Common.csproj
MSBuildThisFileFullPath:
/Users/thill/projects/openra/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
/Users/thill/projects/openra/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
MSBuildThisFileName:
OpenRA.Mods.Common
OpenRA.Mods.Common
MSBuildThisFileExtension:
.csproj
.csproj
MSBuildThisFileDirectory:
/Users/thill/projects/openra/OpenRA.Mods.Common
/Users/thill/projects/openra/OpenRA.Mods.Common
MSBuildThisFileDirectoryNoRoot:
Users/thill/projects/openra/OpenRA.Mods.Common//
Users/thill/projects/openra/OpenRA.Mods.Common//
MSBuildToolsPath:
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/4.5
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/4.5
MSBuildToolsVersion:
4.0
4.0
MonoUseMicrosoftBuildDll:
True
True
OS:
Unix
Unix
MSBuildExtensionsPath:
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/xbuild
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/xbuild
MSBuildExtensionsPath32:
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/xbuild
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/xbuild
MSBuildExtensionsPath64:
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/xbuild
/Library/Frameworks/Mono.framework/Versions/4.3.0/lib/mono/xbuild
SolutionDir:
/Users/thill/projects/openra/
NuGet.CommandLineException: Unable to find ''. Make sure the project has been built.
at NuGet.Commands.ProjectFactory.BuildProject () [0x00153] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/ProjectFactory.cs:281
at NuGet.Commands.ProjectFactory.CreateBuilder (System.String basePath) [0x00006] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/ProjectFactory.cs:127
at NuGet.Commands.PackCommand.BuildFromProjectFile (System.String path) [0x000cc] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/PackCommand.cs:384
at NuGet.Commands.PackCommand.BuildPackage (System.String path) [0x00020] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/PackCommand.cs:288
at NuGet.Commands.PackCommand.ExecuteCommand () [0x000b4] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/PackCommand.cs:133
at NuGet.Commands.Command.Execute () [0x000db] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/Command.cs:111
at NuGet.Program.Main (System.String[] args) [0x001a2] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Program.cs:95
If I keep the ReevaluateIfNecessary()
I always get:
tmba:OpenRA.Mods.Common thill $ md ~/projects/csharp/dotnet/nuget2/src/CommandLine/bin/Release/NuGet.exe pack OpenRA.Mods.Common.csproj -verbosity detailed
Attempting to build package from 'OpenRA.Mods.Common.csproj'.
ProjectFactory(OpenRA.Mods.Common.csproj, ..)
ProjectFactory.ResolveTargetPath()
SetProperty(SolutionDir, /Users/thill/projects/openra/)
System.NotImplementedException: The method or operation is not implemented.
at NuGet.Commands.ProjectFactory.ResolveTargetPath () [0x00098] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/ProjectFactory.cs:304
at NuGet.Commands.ProjectFactory.BuildProject () [0x00137] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/ProjectFactory.cs:276
at NuGet.Commands.ProjectFactory.CreateBuilder (System.String basePath) [0x00006] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/ProjectFactory.cs:127
at NuGet.Commands.PackCommand.BuildFromProjectFile (System.String path) [0x000cc] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/PackCommand.cs:384
at NuGet.Commands.PackCommand.BuildPackage (System.String path) [0x00020] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/PackCommand.cs:288
at NuGet.Commands.PackCommand.ExecuteCommand () [0x000b4] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/PackCommand.cs:133
at NuGet.Commands.Command.Execute () [0x000db] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Commands/Command.cs:111
at NuGet.Program.Main (System.String[] args) [0x001a2] in /Users/thill/projects/csharp/dotnet/nuget2/src/CommandLine/Program.cs:95
I think I've found part of the reason that files are not found even though the <files>
entry does exist.
Do note that this is calling pack
on the nuspec
instead of the csproj
.
tmba:OpenRA.Mods.Common thill $ nuget2 pack OpenRA.Mods.Common.nuspec
Attempting to build package from 'OpenRA.Mods.Common.nuspec'.
BuildFromNuspec(OpenRA.Mods.Common.nuspec)
CreatePackageBuilderFromNuspec -> new PackageBuilder(OpenRA.Mods.Common.nuspec, /Users/thill/projects/openra/OpenRA.Mods.Common, NuGet.Commands.PackCommand+DictionaryPropertyProvider, True)
Manifest.ReadFrom(.. 3)
ManifestReader.ReadManifest(XDocument: )
ManifestReader.ReadFilesList(XElement)
{http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd}file
PackageBuilder.AddFiles(
basePath: /Users/thill/projects/openra/OpenRA.Mods.Common
source: ../mods/common/*.dll
destination: lib
exclude: <null>
);
PathResolver.ResolveSearchPattern(
basePath: /Users/thill/projects/openra/OpenRA.Mods.Common,
searchPath: ../mods/common/*.dll,
targetPath: lib,
includeEmptyDirectories: True
);
PathResolver.PerformWildcardSearchInternal(
basePath: /Users/thill/projects/openra/OpenRA.Mods.Common,
searchPath: ../mods/common/*.dll,
includeEmptyDirectories: True
);
basePath='/Users/thill/projects/openra'
PathResolver.GetPathToEnumerateFrom(
basePath: /Users/thill/projects/openra,
searchPath: /mods/common/*.dll
);
wildcardIndex=13
nonWildcardPortion='mods/common'
basePath='/Users/thill/projects/openra'
basePathToEnumerate='/Users/thill/projects/openra/mods/common'
normalizedBasePath='/Users/thill/projects/openra/mods/common'
searchOption=TopDirectoryOnly
searchRegex=^/mods/common/[^/]*(/)?\.dll$
file='/Users/thill/projects/openra/mods/common/FreeSans.ttf', IsMatch=False
file='/Users/thill/projects/openra/mods/common/FreeSansBold.ttf', IsMatch=False
file='/Users/thill/projects/openra/mods/common/OpenRA.Mods.Common.dll', IsMatch=False
file='/Users/thill/projects/openra/mods/common/OpenRA.Mods.Common.dll.mdb', IsMatch=False
Cannot create a package that has no dependencies nor content.
The interesting bits are:
normalizedBasePath='/Users/thill/projects/openra/mods/common'
searchOption=TopDirectoryOnly
searchRegex=^/mods/common/[^/]*(/)?\.dll$
This is searching in ~/projects/openra/mods/common
for ^/mods/common/*.dll$
which of course won't exist.
I'm not sure how to modify this line into what I am after:
Regex searchRegex = WildcardToRegex(Path.Combine(basePath, searchPath));
After a bit more investigation I've discovered that searchPath
is causing the issue noted above because it starts with /
which is my Path.DirectorySeparatorChar
meaning Path.Combine
simply returns searchPath
without doing any actual concatenation.
I have a (heavily butchered) git state for NuGet/NuGet2
that I can push if anyone thinks I am down the right path for submitting a fix.
Cool, push a pr mark it for feedback only in the comments and add a failing test
I'm having the same problem here, guys. I'm also using OSX.
NuGet Version: 2.8.5.0
Mono 4.2.2
Here's the output of nuget pack
using -verbosity detailed
.
$ nuget pack Colyseus.csproj -verbosity detailed
Attempting to build package from 'Colyseus.csproj'.
System.NotImplementedException: The method or operation is not implemented.
at NuGet.Commands.ProjectFactory.ResolveTargetPath () <0x2e00f50 + 0x0010f> in <filename unknown>:0
at NuGet.Commands.ProjectFactory.BuildProject () <0x2e009d0 + 0x0042b> in <filename unknown>:0
at NuGet.Commands.ProjectFactory.CreateBuilder (System.String basePath) <0x2e00000 + 0x0004f> in <filename unknown>:0
at NuGet.Commands.PackCommand.BuildFromProjectFile (System.String path) <0x2cdfe80 + 0x00227> in <filename unknown>:0
at NuGet.Commands.PackCommand.BuildPackage (System.String path) <0x2cdfe00 + 0x0005f> in <filename unknown>:0
at NuGet.Commands.PackCommand.ExecuteCommand () <0x2cdf528 + 0x0019f> in <filename unknown>:0
at NuGet.Commands.Command.Execute () <0x2cc3918 + 0x00286> in <filename unknown>:0
at NuGet.Program.Main (System.String[] args) <0x66c928 + 0x004ce> in <filename unknown>:0
@endel 2.8.5 is no longer supported. We are currently porting pack to work on .net core so it can work safely on .net core (which will work on Mac natively).
I would start by updating to NuGet 3.3, and use pack with nuspec, pack with csproj is not supported at this point, and will be enabled in a future release.
I see, thanks @yishaigalatzer. For some reason version 2.8.5 were installed by default with mono or something. With v3.3 it works fine!
Great to hear! Much appreciated taking the time to update us.
I can confirm that this also occurs with:
Will now attempt to write a nuspec file from scratch. Unfortunately there's no fancy NuGet Package Explorer for me. :(
we tried to make it work with xbuild, but there are too many missing capabilities.
Discussed today with the mono team (@mrward). And we believe that this is not expected to work until mono ports to use the OSS version of msbuild.
Still haven't decided if we are going to try and work around the xbuild issues short term, but given other things we are working on at the moment, it seems a bit unlikely.
I'm seeing this too on Ubuntu 16.04.
Output of nuget pack MyProject.csproj -Build
:
Attempting to build package from 'MyProject.csproj'.
MSBuild auto-detection: using msbuild version '4.0' from '/usr/lib/mono/4.5'.
The method or operation is not implemented.
Uncaught build node exception occured
System.Threading.ThreadAbortException
at (wrapper managed-to-native) System.Threading.WaitHandle:WaitOne_internal (intptr,int)
at System.Threading.WaitHandle.WaitOneNative (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.UInt32 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x0001b] in <94fd79a3b7144c54b4cb162b50fc7761>:0
at System.Threading.WaitHandle.InternalWaitOne (System.Runtime.InteropServices.SafeHandle waitableSafeHandle, System.Int64 millisecondsTimeout, System.Boolean hasThreadAffinity, System.Boolean exitContext) [0x00017] in <94fd79a3b7144c54b4cb162b50fc7761>:0
at System.Threading.WaitHandle.WaitOne (System.Int64 timeout, System.Boolean exitContext) [0x00000] in <94fd79a3b7144c54b4cb162b50fc7761>:0
at System.Threading.WaitHandle.WaitOne (System.Int32 millisecondsTimeout, System.Boolean exitContext) [0x0001c] in <94fd79a3b7144c54b4cb162b50fc7761>:0
at System.Threading.WaitHandle.WaitOne () [0x00000] in <94fd79a3b7144c54b4cb162b50fc7761>:0
at Microsoft.Build.Internal.BuildNodeManager.RunLoop () [0x00015] in <99070900e21b4b78841792d5a28ba18f>:0
@zhili1208 can you please dedup against your 3.5-RTM issue?
3.3 and 3.4.4 all has this issue, 3.5-rtm doesn't have this issue but pack still does not work with xbuild, With my pack fix, pack will work with msbuild.
Thanks, can you link the issue you are fixing and close this one then as a dup?
this will be fixed by using msbuild on mono, https://github.com/NuGet/Home/issues/3550.
Ummm why was this closed, @zhili1208? MSBuild AFAIK doesn't run on linux, only windows, so I don't get how #3550 is related. I'm probably missing something here. Unless the issue I'm seeing is a completely different one (probable), in which case I'll file a separate bug..
Msbuild now runs on Linux
Sent from Ninehttp://www.9folders.com/
From: Starbeamrainbowlabs [email protected]
Sent: Sep 28, 2016 10:44 PM
To: NuGet/Home
Cc: Yishai Galatzer; Mention
Subject: Re: [NuGet/Home] NuGet pack fails with 'The method or operation is not implemented.' (#1946)
Ummm why was this closed, @zhili1208https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzhili1208&data=01%7C01%7Cyigalatz%40microsoft.com%7Cfc81267131ca4202adb708d3e82bb1af%7C72f988bf86f141af91ab2d7cd011db47%7C1&sdata=ferwWiqlRDW3PDiuYAjCaru0VQVARdqJ2oc4Er1I54g%3D&reserved=0? MSBuild AFAIK doesn't run on linux, only windows, so I don't get how #3550https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FNuGet%2FHome%2Fissues%2F3550&data=01%7C01%7Cyigalatz%40microsoft.com%7Cfc81267131ca4202adb708d3e82bb1af%7C72f988bf86f141af91ab2d7cd011db47%7C1&sdata=zaS7Q42mB%2B76rTLrvHwJZpfIH1VoF0sbl7VDioxQwPk%3D&reserved=0 is related. I'm probably missing something here. Unless the issue I'm seeing is a completely different one (probable), in which case I'll file a separate bug..
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FNuGet%2FHome%2Fissues%2F1946%23issuecomment-250375455&data=01%7C01%7Cyigalatz%40microsoft.com%7Cfc81267131ca4202adb708d3e82bb1af%7C72f988bf86f141af91ab2d7cd011db47%7C1&sdata=WoCK5FabaGCZAcg4QSvt0ItnGHhg0dLcDsX%2FSBtsif0%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABLmtwUgeI2mvT2ICW6nZwoXGyrzVC-zks5qu1BBgaJpZM4HHX7F&data=01%7C01%7Cyigalatz%40microsoft.com%7Cfc81267131ca4202adb708d3e82bb1af%7C72f988bf86f141af91ab2d7cd011db47%7C1&sdata=95OKDwnEm10jwWnojJkKaSBtU%2Fq0mlYXkKMjAQISrTI%3D&reserved=0.
MSBuild runs on *nix, but I don't think this is resolved until msbuild is either required or shipped, or xbuild is picked up correctly.
True but it is covered by fixing 3550
It does? I had no idea. Huh. Why can't nuget use xbuild though?
And how do I install the linux version of msbuild?
@sbrl nuget can use xbuild, but it still won't work due to xbuild bug. Mono will install msbuild for you, so you don't need to install that, but for now mono only do that for mac. not sure when they will do that on linux
Hrm. So I just have to wait until it works then?
this link shows data providers registered with visual studio in registry
http://blog.nwoolls.com/2012/07/25/registering-missing-data-providers-with-visual-studio-2012/
best luck
Ummm I don't understand those links, @Pandurangv. I can't see how they're related to my nuget packaging error, but I'm probably just misunderstanding something.
CC @kzu @mrward @mhutch on timing
On nix, ran sudo nuget update -self
and I could create a nuget package from the *nuspec file successfully.
@zhili1208 The resolution to #3550 doesn't fix the issue for me either. On macOS, it's still not possible to build a nuget package from a .csproj
.
@qguv maybe you could try NuGetizer instead and see if that fixes it? install-package NuGet.Build.Packaging
;)
I ended up writing a .nuspec
file from scratch.
I'd really like to see support for building from a .csproj file on macOS as that is the method the official tutorials use when walking through the packaging process. Alternatively, the tutorials could be changed to use a different method.
You can install PowerShell via homebrew: brew install powershell
Of course NuGet proper should support what it promises to support but I haven't seen that yet.
@qguv NuGetizer is supported on macOS.
This issue still has no solution?! Means if you want to pack a nuget package in linux you are damn forced to use nuspec files?! That's ok, but it has more terrible implications: you are forced to use the old csproj format, and you can therefore not use .NET Core.
Any plans to work on this? msbuild for linux is out since a while ago an working fine. It should not be too hard any more to make nuget pack work on linux.
@Jose-CF Ummm what? You don't use .csproj files in .NET core? I have more reading to do than I thought......
@sbrl I use cspoj files to define my .NET projects. What do you mean?
you are forced to use the old csproj format
you mean forced to use the NEW csproj format ;), which totally rocks!
@Jose-CF I'm just confused. What's changed? Does anyone have a good article they can recommend to me to bring my knowledge up-to-date?
@kzu no... that is the problem... forced to use the old! And therefore cannot target netcoreapp1.x or netcoreapp2.x.
Please fix!!
@Jose-CF this combination works, we're using it: new csproj (15.3+) plus nugetizer. Can target netcoreapp, any version, and netstandard too.
For anyone still interested in this, I solved my use case (see bug 5627) with the following argument.
-MsbuildPath /usr/lib/mono/msbuild/15.0/bin/
;)
This forced nuget to use the version of msbuild bundled with mono instead of the xbuild.
to anyone who finds this issue while trying to use Cakebuild...
c#
var settings = new NuGetPackSettings
{
settings.ArgumentCustomization = args => args.Append("-MSBuildPath /usr/lib/mono/msbuild/15.0/bin/");
};
NuGetPack(project.Path, settings);
...will get you past the issue.
Most helpful comment
@endel 2.8.5 is no longer supported. We are currently porting pack to work on .net core so it can work safely on .net core (which will work on Mac natively).
I would start by updating to NuGet 3.3, and use pack with nuspec, pack with csproj is not supported at this point, and will be enabled in a future release.