标签: nuget-spec

如何从nuget更改脚本或样式文件位置?

我有一个MVC项目,我正在使用jquery,bootstrap和nuget的其他一些文件.默认情况下,在mvc中,所有脚本文件都在,Scripts并且所有css文件都在Content您所知的位置.我将所有脚本和css文件移动到Content/css,Content/js,之后我遇到了问题,因为当我更新我的nuget包时,文件将进入默认位置(js => Scripts,css => Content).

那么我该如何解决这个问题呢?可能吗 ?

asp.net-mvc visual-studio nuget nuget-package nuget-spec

7
推荐指数
1
解决办法
2644
查看次数

什么是nuget props文件,其用途是什么?

我环顾四周阅读了很多,但找不到明确的答案来解释“ nuget.props”文件的含义以及它的用途是什么?

任何解释,也许有一些例子会有所帮助?

properties-file nuget nuget-spec

7
推荐指数
1
解决办法
1967
查看次数

NuGet 依赖项 - 指定 targetFramework 时收到 NU5128 警告

我有一个针对 .NET Framework 4 的项目。我正在使用nuget.exe(version 5.6.0.6591) 创建 NuGet 包。Microsoft.CSharp项目本身除了程序集之外没有其他引用System(这些都没有特定的版本集)。

首先,我创建了一个MyProject.nuspec文件(通过nuget specMyProject.csproj文件夹中运行)。然后我尝试运行nuget pack MyProject.csproj并获取 NuGet 包(.nupkg存档)。但我也收到了这个警告:

WARNING: NU5128: Some target frameworks declared in the dependencies group of the nuspec and the lib/ref folder do not have exact matches in the other location. Consult the list of actions below:
- Add a dependency group for .NETFramework4.0 to the nuspec
Run Code Online (Sandbox Code Playgroud)

根据https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu5128,我修改了我的.nuspec文件,现在它看起来像这样(注意标签<dependencies> …

.net nuget nuget-spec

7
推荐指数
1
解决办法
1614
查看次数

带有不在lib子文件夹中的程序集的NuGet引用规范

我有一个相当复杂和大型的项目,我想尝试打包作为内部使用的nuget包.我想避免复制文件,因为有很多(150 MB +二进制文件).相反,我试图使用该<file ...>元素将包蓝图文件指向文件.这是我可以重现我的问题的文件的简化版本:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>AgentCore</id>
    <version>6.1.0</version>
    <authors>kkm</authors>
    <description>AgentCore</description>
    <references>
      <reference file="Utils.dll" />
    </references>
  </metadata>
  <files>
    <file src="Kigo\bin\Release\Utils.dll" target="/lib/net40"/>
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我都会收到错误:

无效的程序集引用'utils.dll'.确保lib目录中存在名为"utils.dll"的文件.

我尝试了这个答案的建议,但无济于事.

是否可以避免在物理上布局目录,如NuGet文档中所述,并使用文件引用代替?

nuget nuget-spec

6
推荐指数
1
解决办法
1551
查看次数

创建一个使用所有默认行为但添加一个附加文件的 nuspec 文件

我想要一个nuspec文件,它可以自动读取所有信息packages.config等等,构建所有依赖项,但也只包含一个附加文件。

有没有办法做到这一点?

例如,这是一个nuspec几乎可以完成我想要的文件:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <metadata>
    <id>My.Project</id>
    <version>1.0.0.0</version>
    <owners>Me</owners>
    <authors>Me</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <title>My.Project</title>
    <description>My.Project</description>
    <frameworkAssemblies />
    <copyright>Copyright ©  2015</copyright>
    <tags></tags>    
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

如果我的项目引用了 10 个nuget包,上面的nuspec文件将检测到并在我将包打包在一起时将它们添加为依赖项。

但是,当我添加一个files元素时,所有到我其他 nuget 依赖项的自动链接都会停止:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <metadata>
    <id>My.Project</id>
    <version>1.0.0.0</version>
    <owners>Me</owners>
    <authors>Me</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <title>My.Project</title>
    <description>My.Project</description>
    <frameworkAssemblies />
    <copyright>Copyright ©  2015</copyright>
    <tags></tags>    
  </metadata>
  <files>
    <file src="myfile.dll" target="lib\net45" />
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

如果没有自动链接,我必须有效地为我的项目维护所有依赖项的两份副本:一份在csproj文件中,一份在此处。

一定有办法做到这一点?!我只想通过 nuspec 向我的包中添加一个额外的文件。

nuget-package nuget-spec

6
推荐指数
1
解决办法
762
查看次数

Nuget pack不支持程序集版本上的位数

我需要nuget pack生成一个只有3位数的包版本(我们希望对它进行语义版本控制)但是当我在一个AssemblyVersion属性设置为"1.0.0" 的csproj上调用它时,生成的nupkg文件以版本"1.0结束.0.0"在它的元数据(和文件名)中.为什么命令行工具不支持AssemblyVersion属性上指定的位数?

我通过调用nuget speccsproj文件启动了这个,它生成了一个这样的stub nuspec文件(它实际上包含了带有占位符值的更多标签,但我删除了它们,因为我们不需要它们):

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes>Release notes.</releaseNotes>
    <copyright>Copyright 2015</copyright>
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

将此nuspec文件在TFS中与csproj文件放在同一文件夹中,我们现在可以像这样调用pack:

nuget pack MyProject.csproj
Run Code Online (Sandbox Code Playgroud)

项目的AssemblyInfo.cs文件包含一行显式设置版本:

[assembly: AssemblyVersion("1.0.0")]
Run Code Online (Sandbox Code Playgroud)

除了工具在检索装配版本时使用4位数这一事实外,它完全正常工作.当我右键单击文件浏览器上的dll并转到详细信息时,甚至Windows显示只有3位数的版本.为什么NuGet使用4位数字?我也许错过了一些明显的东西?

对nuspec中的版本进行硬编码显然不是理想的,因为那时我们必须将版本号保持在两个不同的位置,而它们的目的始终是相同的.我的意思是,这应该$version$是NuGet本身知道如何从项目中提取的特殊占位符值背后的想法.

nuget nuget-package nuget-spec

6
推荐指数
1
解决办法
2324
查看次数

Nuget使用nuspec打包csproj

我想创建一个nuget包,它只包含我的nuspec文件中指定的内容,但仍然从我的csproj中获取版本.为了使用我必须打包的令牌:

nuget pack MyProj.csproj
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,它会添加一些依赖项,并在我的nuget包中创建一个不需要的文件夹.我的nuspec文件是:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>    
    <id>Test</id>
    <version>$version$</version>
    <title>Test</title>
    <authors>Test</authors>
    <owners>Test</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Test</description>
    <summary>Test</summary>
    <releaseNotes>Test</releaseNotes>
    <copyright>Test</copyright>  
  </metadata>
  <files>
    <file src="bin\Debug\*.dll" target="lib\net45" />
    <file src="bin\Debug\MyProj.Wpf.exe" target="lib\net45" />
    <file src="bin\Debug\MyProj.Wpf.exe.config" target="lib\net45" />
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

当我运行pack命令时,它添加的文件是target ="lib \net452"中的MyProj.Wpf.exe

我可以强制它不添加依赖项和这个额外的文件吗?或者只做nuspec中指定的内容?

nuget nuget-package nuget-spec

6
推荐指数
1
解决办法
2795
查看次数

.nu​​spec 中 NuGet 包描述中的超链接

我正在开发一个 NuGet 包并在 github.com 上保持开源

我安装后的包需要在 VS 解决方案中完成一些配置步骤,我在 github 上的 README.md 文件中记录了这一点。

我想在 NuGet 包中引用这个 README.md 文件,以便人们知道安装包后要做什么。

我已<projectUrl>在我的.nu​​spec 中指定文件中指向我在 github 上的 Git 存储库。但是对于用户来说,他们需要单击它来阅读文档并不明显。

我想让用户按照链接阅读完整文档,大声而清晰。最好有一个超链接,例如在.nu​​spec文件的<description>字段中,因此它在以下位置显示为超链接:

  • nuget.org 上的项目页面
  • 浏览\安装包时Visual Studio中显示的包详细信息

我尝试了不同的方法来添加链接,例如 XML 转义<>as &lt;and&gt;但它没有将其显示为链接,而只是作为 html 文本。

nuget nuget-package nuspec nuget-spec

6
推荐指数
1
解决办法
895
查看次数

我应该在哪里放置nuspec文件

我已经搜索了整个stackoverflow社区,但找不到答案...

我有一个.nuspec文件,我不知道放在哪里。有些主题说我必须将其放在项目目录中并包含在版本控制中。其他人说,它只是将文件保存在与文件相同的目录中.nupkg...但是它对我不起作用。任何的想法?

提前致谢。

nuget-package nuspec nuget-spec

6
推荐指数
1
解决办法
4321
查看次数

在我的 nuget 包安装后执行一个操作

我们已经创建了很多 NuGet 包。其中之一是一个工具,它包含一个特殊的编译器,并且像dotnet tool. 命令的名称是“PolyGen”。

我们使用了与使用类似的机制Grpc.Tools,这意味着我们已经在 NugetPackage 中定义了 .targets 文件。它运作良好。

但是当我更新我的 PolyGen 时,之后我必须使用命令手动更新 dotnet 工具dotnet tool update

但是我看到Grpc.Tools更新的时候,自动执行了dotnet工具更新。包管理器控制台写了以下消息:

Executing nuget actions took 181,36 ms
Run Code Online (Sandbox Code Playgroud)

我们如何定义这个自动执行的命令,以避免手动更新?

谢谢你们!

c# nuget nuget-package nuget-spec

6
推荐指数
1
解决办法
356
查看次数