标签: nuget-package

使用NuGet/Powershell从项目中删除文件夹和文件

我想在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认为项目是项目的一部分.

我需要的是一种以编程方式从项目中删除对这些项的引用的方法.有任何想法吗?

powershell nuget nuget-package

14
推荐指数
1
解决办法
4349
查看次数

nuget覆盖文件

是否可以强制nuGet包覆盖现有文件?我需要一个很好的方法来应用3个类似项目的补丁(文件,DLL,资源),这可能是一个很好的解决方案.

nuget nuget-package

14
推荐指数
2
解决办法
7829
查看次数

如何创建包含XML intellisense数据的NuGet包

此链接如何为我的DLL创建XML Intellisense文件?解释了如何构建您的dll,以便包含包含所有文档标题的XML文件,以便它们在这些IntelliSense弹出窗口中可用.

在我的公司,我们经常使用内部NuGet包源分发我们自己的dll.当我为包源创建NuGet包时,如何确保其他人从包源获取dll,IntelliSense会为它们显示文档头?

intellisense visual-studio-2010 visual-studio nuget nuget-package

14
推荐指数
2
解决办法
5025
查看次数

如何从nuget包中排除文件夹

我正在使用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 nuget-package octopus-deploy

14
推荐指数
2
解决办法
2万
查看次数

是否有一个nuget.exe命令行等效的Uninstall-Package?

我正在开发一个NuGet包,它将一堆内容 - 视图,脚本,CSS文件 - 安装到Web应用程序中,并尝试改进更改 - 编译 - 测试周期.我有两个项目 - 框架本身("包")和使用它的演示网络应用程序("网站")

作为Visual Studio构建过程的一部分,我需要做的是:

  1. (作为Package post-build的一部分)Nuget pack Package.nuspec -OutputDirectory ..\pkg \
  2. (作为网站预构建的一部分)Nuget卸载包
  3. (作为网站预构建的一部分)Nuget安装包-source ..\pkg \

问题是 - 似乎没有任何命令行等效Uninstall-Package于NuGet Package Manager控制台.我错过了什么吗?

visual-studio-2010 nuget nuget-package

14
推荐指数
1
解决办法
3757
查看次数

无法加载文件或程序集'Moq,4.2.1502.911或其依赖项之一

我从我的项目的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)

unit-testing moq nuget-package visual-studio-2013

14
推荐指数
1
解决办法
3583
查看次数

如何在asp.net 5应用程序中添加Project Reference

据我所知,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包管理器来处理这个问题吗?

nuget-package visual-studio-2015 asp.net-core

14
推荐指数
1
解决办法
9905
查看次数

在VS2015中回滚到旧的Nuget包管理器

有什么方法可以回滚到VS 2015的旧Nuget包管理器(VS2013附带的那个),带VS2015的Nuget包管理器很慢,甚至不支持简单的事情,如全部更新,如果你查看提供的评论这只是坏事:(

我试图通过工具 - >扩展和更新找到旧版本,如下面的屏幕截图所示. 安装扩展和更新

只需注意,要更新项目中的所有当前软件包,您可以转到软件包管理器控制台(Alt + T -> N > O)并键入"Update-Package"并按Enter键.这将更新所有现有包.

visual-studio nuget-package

14
推荐指数
0
解决办法
1809
查看次数

从NuGet包加载程序集

有时在我的PowerShell脚本中,我需要使用访问特定的DLL Add-Type -AssemblyName.但是,我需要的DLL并不总是在机器上或GAC中.例如,我可能想要一个使用Dapper查询数据库的快速脚本.在这些情况下,我一直在将DLL与ps1文件一起复制.我想知道这是不是常见/一个好主意,是否有现有的扩展会加载NuGet包,然后存储在全局或本地文件夹中并Add-Type -AssemblyName自动调用.

它分别与使用npmpip在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或更低版本).

Install-Package抓取所有.NET框架的依赖关系

我想知道是否有办法根据PowerShell的当前$PSVersionTable.CLRVersion字段确定从哪个NuGet包文件夹加载DLL .

powershell nuget-package powershell-4.0

14
推荐指数
2
解决办法
5203
查看次数

NuGet包显示黄色感叹号

我刚刚通过NuGet安装了一个软件包,但它在我的解决方案资源管理器中显示了一个黄色的感叹号图标,请参见下面的截图.

为什么会发生这种情况,我该如何解决?

在此输入图像描述

visual-studio nuget nuget-package asp.net-core

14
推荐指数
2
解决办法
3759
查看次数