如何打包在 CSProj 文件中具有 Nuget 规范的 .NET Standard NuGet 包而不重建它?
\n\n我有一些自动化需要在构建步骤和打包步骤之间运行,这些自动化与构建过程本身分离,并且不应该是与任何项目相关的构建事件。
\n\n当我尝试使用 nuget CLI 时,它失败并显示以下内容:
\n\nError NU5012: Unable to find \'bin\\Debug\\LibraryNuGetExample\\bin\\Debug\\\'. Make sure the project has been built.
这没有任何意义,因为那不是构建输出文件夹!正确的输出文件夹是bin\\Debug\\**——我不明白为什么它要寻找我没有在任何地方指定的目录映射。
我尝试使用这个,但它重建了,我绝对不想要;只是nuget pack:
MSBuild LibraryNuGetExample.csproj /t:pack
所以我要么需要知道如何,
\n\nLibraryNuGetExample.csproj
<Project Sdk="Microsoft.NET.Sdk">\n\n <PropertyGroup>\n <TargetFrameworks>uap10.0;net45</TargetFrameworks>\n <PackageId>LibraryForNuGetExample</PackageId>\n <Authors>user name</Authors>\n <Company>ACME</Company>\n <Product>Library For NuGet Example</Product>\n <Description>A test package to test …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 packages.config 迁移到 PackageReference
我做了所有步骤,但总是以这个错误告终:
本地源 'C:\Program Files (x86)\DevExpress 19.1\Components\System\Components\Packages' 不存在
我目前正在使用各种方法创建 SQLWorker 类,这些方法作为更广泛框架的一部分执行各种 sql 命令。我有一个用于执行 sql 脚本的方法。如下:
public object ExecuteScript(string sql, ExecutionType executionType = ExecutionType.NonQuery,
int statementTimeout = 1800)
{
using (var connection = new SqlConnection(ConnectionString))
{
connection.InfoMessage += (sender, args) =>
_infoMessageText.AppendLine(args.Message);
var server = new Server(new ServerConnection(connection));
server.ConnectionContext.StatementTimeout = statementTimeout;
switch (executionType)
{
case ExecutionType.NonQuery:
return server.ConnectionContext.ExecuteNonQuery(sql);
case ExecutionType.Scalar:
return server.ConnectionContext.ExecuteScalar(sql);
case ExecutionType.Reader:
return server.ConnectionContext.ExecuteReader(sql);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我当前收到错误:参数 1:无法从“System.Data.SqlClient.SqlConnection”转换为“Microsoft.SqlServer.Management.Common.IRenewableToken”
该特定行是
var server = new Server(new ServerConnection(connection));
Run Code Online (Sandbox Code Playgroud)
ServerConnection 类似乎需要 IRenewableToken 参数,但它具有接受 SqlConnection 参数的构造函数。
我不确定我错过了什么我相信我有正确的 NugetPackages 并有以下 …
我目前正在尝试创建一种 XAML“样式集合”,我们可以在所有 UI 项目中使用它,以实现视觉效果的一致性。
我尝试创建一个类库并添加了ResourceDictionary我的风格:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="ToggleSwitch" TargetType="{x:Type CheckBox}">
Some style in here
</Style>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
在构建选项中启用构建 NuGet 包并将其添加到另一个 UI 项目中。我现在不太清楚如何在 UI 项目中实际使用该样式。
这是否是一种有效的方法?谷歌搜索这个特定的意图并没有给我带来任何合理的结果。
我正在尝试从PagedList切换到X.PagedList。我使用 NuGet 卸载 PagedList 和 PagedList.Mvc 包,然后安装 X.PagedList 和 X.PagedList.Mvc。
当我去更新我的视图时,我发现自己处于一个奇怪的情况:我似乎无法像这样引用示例中PagedList.Mvc详述的命名空间:
@using X.PagedList.Mvc;
@using X.PagedList;
Run Code Online (Sandbox Code Playgroud)
在 Visual Studio 中和调试时,会出现以下异常:
命名空间“X.PagedList”中不存在类型或命名空间名称“Mvc”(您是否缺少程序集引用?)
(顺便说一句,如果我不这样做using,我会得到关于缺少定义的例外,正如预期的那样。)
NuGet 包有问题吗?有没有办法手动向通过 NuGet 安装的包添加程序集引用?
我正在构建一个nuget将在企业中的许多项目中共享的包.它本质上是实体框架模型.在某些时候,这些类是从数据库中搭建的,并且生成的类都被定义为部分类(所有示例仅用于说明目的):
public partial class Customer { ... }
public partial class Order { ... }
Run Code Online (Sandbox Code Playgroud)
一些项目利用了这一点partial并开发了超出数据库关注范围的其他功能:
public partial class Customer {
// get distance from the office to customer home
public decimal Distance { get { ... } }
}
Run Code Online (Sandbox Code Playgroud)
允许在LINQ语句中使用此计算值:
from c in Customer where Distance < 100 select c
Run Code Online (Sandbox Code Playgroud)
但是现在"核心"类的集合在nuget包中,这些类不再是局部的.有没有办法强迫nuget尊重partial属性?我意识到它的耦合太紧; 但它会大大简化从"嵌入式"模型到nuget的过渡
我的 .NET 解决方案中有大约 100 个项目。我设法使用一个简单的命令通过包管理器控制台获取项目中使用的所有 nuget 包。
我有大约 100 个 Nuget 包。现在,对于每个 nuget 包,我想要将其作为参考的项目。即假设我有三个项目 A、B 和 C,并且我有 Nuget 包(假设是 nHibernate)。
当我手动转到每个项目的引用部分时,我看到项目 A 和项目 B 中引用了 nHibernate。所以我对该包的依赖项目是 A 和 B。
像这样我想要我所有的 nuget 包。我怎样才能在没有任何手动任务的情况下做到这一点。就像我可以使用任何命令或方法一样。
我正在尝试从引用的类重写方法。该类在另一个解决方案中,并作为nuget包发布,并添加到我的解决方案中。该方法是公共的(也在公共类中),我需要使它接受两个参数而不是一个参数。我该怎么做?
我已支付通过私人 NuGet 源检索的许可 NuGet 包。当尝试从该源搜索 Visual Studio 中的任何包时,它会提示输入用户名和密码。该应用程序(Xamarin Forms)可以很好地使用这些许可包构建。
另一方面,现在 Azure DevOps 失败了,因为它无法从 nuget.org 恢复块。
经过研究,尝试了两种选择:
选项 1:使用 DevOps 中的“服务连接”通过凭据连接到此源,就像在 Visual Studio 中一样,然后使用 NuGet 还原来选择该服务连接。这会生成一个临时 nuget.config 文件,其完整内容为:<configuration/>并且该任务无法找到丢失的 NuGet。
选项 2:使用 Artifacts,并从本地计算机手动推送。我已从其位置推送了项目引用的文件,但其工件描述末尾附加了“试用版本”。构建仍然失败并出现以下错误:
##[error]The NuGet command failed with exit code(1) and error(NU1101: Unable to find package Infragistics.XF.DV. No packages exist with this id in source(s): 94785e32-5a7b-4923-93b0-abe71c3c1f4c
Run Code Online (Sandbox Code Playgroud)
我认为这两种情况都会失败,因为临时 nuget.config 文件为空。在选项2之后,配置文件被删除,所以我看不到里面到底有什么。
另请注意,使用 Visual Studio 浏览时此源非常慢。
请告知我如何将私有包引入 DevOps?
编辑答案:Nuget 恢复任务,nuget.config 路径为空,因为我预计会自动生成一个与答案内容类似的新路径。我将 Nuget.config 添加到带有 2 个提要的项目源代码中,并且它工作正常。
此外,您还可以在以下位置找到 Visual Studio 全局 Nuget.config:%AppData%\NuGet …
nuget-package nuget-package-restore xamarin.forms azure-devops
c# ×6
nuget ×5
.net ×2
asp.net-mvc ×1
azure-devops ×1
devexpress ×1
nuget-spec ×1
overriding ×1
pagedlist ×1
winforms ×1
wpf ×1
xaml ×1