原谅对我来说必须是一个非常简单的疏忽,但我只是不能让它按预期工作。
我正在构建一个.NET Framework 4.6类库,其他应用程序需要从一个私有Nuget存储库中下载该类库。以下是我的流程:
-
我有一个测试项目,consoleapp5。它有一个简单的主要功能。
-
我下载了我的nuget包my package(右键单击项目并单击管理nuget包,选择适当的repo和package,单击安装)。
-
我进行测试。在本例中,我只是尝试实例化一个类,这并不困难。我在类可访问性方面出错。
-
回到mypackage中,我替换了该单词的所有实例
protected
具有
public
. 我也添加了一个新的类,方法是右键单击项目,选择添加项,针对一个类并给它命名。
TestClass
.
-
我转到项目>我的包属性…>应用程序(选项卡)>程序集信息,我手动逐个更新版本修补程序号。所以现在是1.0.5。
-
我转到developer命令行中的项目目录并运行以下命令:
C:\Users\jptak\Downloads\nuget.exe pack -Version 1.0.5
-
然后我运行以下命令来推送更新(成功消息:
Your package was pushed.
):
C:\Users\jptak\Downloads\nuget.exe push MyPackage.1.0.5.nupkg MySecretCodeGoesHere -src http://my.nuget.server.goes.here.com
-
我返回到consoleapp5,管理nuget包,查看相应包中的更新,然后单击更新箭头。下载完成,新版本号在那里。
-
我去使用新的类,或者检查旧的错误是否被修复,以及我的所有测试是否都失败。
测试类
不在那里。
这让我相信我正在编写的代码并没有到达nuget服务器。
有人知道我在这个过程中缺少了什么,以便在服务器上更新最新版本的代码吗?
这个过程对我来说是陌生的,因为我不是.NET开发人员(我主要使用PHP)。
以下是有关我的IDE设置的更多信息:
-
在内部版本配置管理器中…gt;
调试
已切换到
释放
-
我试过建造、重建和清理我的项目。我没有看到这些过程中的任何一个对被推送的代码有任何影响。
以下是来自我的控制台App5的代码:
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
string testclient = "testclient";
string testpass = "testpass";
string scope = "validate-contract";
string accessToken = "";
string retrievedScope = "";
MyPackage.TestClass test = new MyPackage.TestClass();
}
}
错误:命名空间中不存在TestClass。是否忘记了程序集引用?
下面是mypackage中的testclass代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyPackage
{
public class TestClass
{
public TestClass()
{
}
}
}
我使用的Nuget服务器是:
https://github.com/Daniel15/simple-nuget-server
编辑1
在检查.nupkg文件时,我可以确认旧代码仍然存在,并且新代码没有进入.nupkg。这似乎支持这样一种观点,即问题出在打包过程中,而不是在nuget服务器上。如何刷新每个DLL文件之前
nuget pack
/
nuget push
?