我想在NuGet包安装期间从我的项目中删除App_Start文件夹.NuGet的文档在这里:
http://nuget.codeplex.com/wikipage?title=Creating%20a%20Package
说:
$ project.Object相当于http://msdn.microsoft.com/en-us/library/ms170626.aspx.
我无法找到对我有帮助的界面的大量信息.
我有以下Powershell脚本成功删除文件夹和文件:
param($installPath, $toolsPath, $package, $project)
$DirInfo = New-Object System.IO.DirectoryInfo($installPath)
$appDir = New-Object System.IO.DirectoryInfo($DirInfo.Parent.Parent.FullName)
$fullPath = [IO.Path]::Combine($appDir.FullName, $appDir.Name, "App_start")
Remove-Item $fullPath -recurse
Run Code Online (Sandbox Code Playgroud)
(我知道此处的路径无法保证,但此包仅供内部使用)
但是项目仍然引用了项目,因此项目显示黄色警告,因为Visual Studio认为项目是项目的一部分.
我需要的是一种以编程方式从项目中删除对这些项的引用的方法.有任何想法吗?
是否可以强制nuGet包覆盖现有文件?我需要一个很好的方法来应用3个类似项目的补丁(文件,DLL,资源),这可能是一个很好的解决方案.
此链接如何为我的DLL创建XML Intellisense文件?解释了如何构建您的dll,以便包含包含所有文档标题的XML文件,以便它们在这些IntelliSense弹出窗口中可用.
在我的公司,我们经常使用内部NuGet包源分发我们自己的dll.当我为包源创建NuGet包时,如何确保其他人从包源获取dll,IntelliSense会为它们显示文档头?
intellisense visual-studio-2010 visual-studio nuget nuget-package
我正在使用Octopack/Nuspec文件来构建我的nuget包.
我想排除项目中存在的某些文件夹.例如"obj"文件.我一直试图让排除标签工作,但没有任何运气.nuget文件构建,但文件夹仍然存在.
遗憾的是,网络特定文件类型的所有示例都没有文件夹.
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Foo</id>
<title>Foo</title>
<version>$version$</version>
<authors>NA</authors>
<owners>NA</owners>
<licenseUrl>http://Foo</licenseUrl>
<projectUrl>http://Foo</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Foo</description>
<releaseNotes>NA</releaseNotes>
</metadata>
<files>
<file src="obj\**\*.*" exclude="*.*" />
</files>
</package>
Run Code Online (Sandbox Code Playgroud) 我正在开发一个NuGet包,它将一堆内容 - 视图,脚本,CSS文件 - 安装到Web应用程序中,并尝试改进更改 - 编译 - 测试周期.我有两个项目 - 框架本身("包")和使用它的演示网络应用程序("网站")
作为Visual Studio构建过程的一部分,我需要做的是:
问题是 - 似乎没有任何命令行等效Uninstall-Package于NuGet Package Manager控制台.我错过了什么吗?
我从我的项目的Manage Nuget Packages安装了Moq nuget包.项目构建成功,但是当我运行测试用例时,它会抛出以下错误
System.IO.FileLoadException: Could not load file or assembly 'Moq, Version=4.2.1502.911, Culture=neutral, PublicKeyToken=69f491c39445e920' or one of its dependencies
Run Code Online (Sandbox Code Playgroud)
我检查了项目引用,Moq.dll就在那里.
另外我在测试运行的输出窗口注意到这一点
------ Discover test started ------
Unable to load the test container 'C:\dev\tfs\Main\GUI\Gui.Client\Bin\Debug\Gui.Client.dll' or one of its dependencies. Error details: System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Practices.Prism, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. …Run Code Online (Sandbox Code Playgroud) 据我所知,Visual Studio 2015有一些更新,我们不能在asp.net 5应用程序中添加DLL,如果我们需要添加,那么我们需要制作NuGet包然后安装它.
现在我的问题是: -
1)如果我有一个带有两个类库的项目,那么如何在我的asp.net 5应用程序中添加该类库的引用(DLL)?
2)如果一个类库也处于开发模式,那么如果该DLL通过NuGet安装,如何在asp.net 5应用程序中更新该DLL,因为每次在NuGet上发布并获取最新的时间需要更多时间.
3)假设我们需要使用NuGet添加所有DLL那么私有DLL呢?
4)没有任何方法没有NuGet包管理器来处理这个问题吗?
有什么方法可以回滚到VS 2015的旧Nuget包管理器(VS2013附带的那个),带VS2015的Nuget包管理器很慢,甚至不支持简单的事情,如全部更新,如果你查看提供的评论这只是坏事:(
我试图通过工具 - >扩展和更新找到旧版本,如下面的屏幕截图所示.

只需注意,要更新项目中的所有当前软件包,您可以转到软件包管理器控制台(Alt + T -> N > O)并键入"Update-Package"并按Enter键.这将更新所有现有包.
有时在我的PowerShell脚本中,我需要使用访问特定的DLL Add-Type -AssemblyName.但是,我需要的DLL并不总是在机器上或GAC中.例如,我可能想要一个使用Dapper查询数据库的快速脚本.在这些情况下,我一直在将DLL与ps1文件一起复制.我想知道这是不是常见/一个好主意,是否有现有的扩展会加载NuGet包,然后存储在全局或本地文件夹中并Add-Type -AssemblyName自动调用.
它分别与使用npm或pip在Node.js或Python中很相似.
我做了一些研究,并没有内置到旧版本的PowerShell.我试图从头开始编写一个使用的nuget.exe
&"$(Get-Location)/nuget.exe" install $packageName -Version $version -OutputDirectory "$(Get-Location)/packages" -NoCache -NoInteractive
Run Code Online (Sandbox Code Playgroud)
这将下载当前文件夹中"packages"文件夹下的给定包/版本及其任何依赖项.但是,它看起来像下载每个框架版本,没有明显的方法来告诉您哪个用于您的给定环境.
否则,您可以循环遍历结果并调用Add-Type:
Get-ChildItem .\packages\ -Recurse -Filter "*.dll" | % {
try
{
Add-Type -Path $_.FullName
}
catch [System.Exception]
{
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用restore命令使用project.json文件来查看我是否可以控制框架版本而没有运气.这对我来说太过于苛刻了.
我将查看@ crownedjitter关于使用PowerShell 5的建议.
使用@ crownedjitter的建议,我最终能够使用NuGet注册PackageManagement模块(请参阅下面的评论).使用以下命令,我能够重现Nuget.exe上面的命令正在执行的操作:
Install-Package Dapper -Destination packages
Run Code Online (Sandbox Code Playgroud)
显然,这要短得多.问题是它有同样的局限性; 它降低了包的每个框架版本.如果这包括.NET核心,它会带来很多.NET核心框架!似乎没有办法指定目标框架(又名.NET 4.5.1或更低版本).
我想知道是否有办法根据PowerShell的当前$PSVersionTable.CLRVersion字段确定从哪个NuGet包文件夹加载DLL .
nuget-package ×10
nuget ×6
asp.net-core ×2
powershell ×2
intellisense ×1
moq ×1
unit-testing ×1