C# nuget本地存储库推送不移动dll
我已经在我的C# nuget本地存储库推送不移动dll,c#,nuget,C#,Nuget,我已经在我的H:\demo驱动器上创建了一个C#项目。我创造了一个核弹包 nuget规范 nuget pack app.1.0.0.nupkg nuget push H:\nuget\U存储库 我把它推到H:\nuget\u repository 但现在,当我将此包作为对任何项目的引用添加时,引用源目标设置为“H:\demo\packages\app.1.0.0\lib\net45\app.dll” 但是dll应该在我的项目bin目录上移动 <package > <me
H:\demo
驱动器上创建了一个C#项目。我创造了一个核弹包
- nuget规范
- nuget pack app.1.0.0.nupkg
- nuget push H:\nuget\U存储库
H:\nuget\u repository
但现在,当我将此包作为对任何项目的引用添加时,引用源目标设置为“H:\demo\packages\app.1.0.0\lib\net45\app.dll
”
但是dll应该在我的项目bin目录上移动
<package >
<metadata>
<id>app</id>
<version>1.0.0.1</version>
<title>AppDemo</title>
<authors>ok</authors>
<owners>ok</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>app</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>app Repository</tags>
</metadata>
<files>
<file src="bin\Debug\app.dll" target="lib"></file>
</files>
</package>
应用程序
1.0.0.1
应用演示
好啊
好啊
http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE
http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE
http://ICON_URL_HERE_OR_DELETE_THIS_LINE
假的
应用程序
此版本包中所做更改的摘要。
版权所有2017
应用程序存储库
但是dll应该在我的项目bin目录上移动
不,为什么
您可以从包提要获取包。在本例中,此提要是否在本地计算机上并不重要,因为NuGet将提要视为瞬态:它将包复制到本地缓存中
从那里,包被复制到项目本地缓存(。\packages\$packageName
),然后NuGet将对该目录中程序集的引用添加到项目中
然后,当您构建项目时,引用的程序集将从包目录复制到输出目录(
bin
)。您的是否正确。nuspec
正确吗?nuspecI更新的帖子在我的演示上有一个界面,我将包引用到了控制台应用程序。当我在接口上添加一个新方法时,控制台应用程序会给出运行时错误以实现新方法。但这将是新版本。此错误应出现在创建的新包上。我的问题是,我不太明白你的意思,但听起来好像你在更新一个包,而不是更改版本,导致MissingMethodException,因为你引用的DLL不包含该方法。简言之:在进行更改时更新软件包版本,因为软件包是缓存的。我的意思是我在C:\app
中创建了X parobject,并创建了X的nuget packege,然后将其推送到C:\repository
。然后我创建了一个客户端应用程序Y。并从本地存储库安装了程序包X。当我更改X项目代码时,Y项目会给出代码更改后的运行时错误。但我没有直接添加引用Y。我安装了packege。如果我更新包,它会给出错误。有道理吗?是的,听起来很清楚。您所描述的内容确实不应该发生,因为使用的是来自包的程序集,而不是您的项目输出。