And*_*ers 7 c# visual-studio vsix nuget
使用此代码:
public void InstallPackage(Project project, string packageId, string version, string packageSource)
{
var componentModel = (IComponentModel)Package.GetGlobalService(typeof(SComponentModel));
var installer = componentModel.GetService<IVsPackageInstaller>();
installer.InstallPackage(packageSource, project, packageId, version, false);
}
Run Code Online (Sandbox Code Playgroud)
EntityFramework 6.1.3例如,当我尝试安装时,它只是挂起就installer.InstallPackage()行了.我让它运行长达10分钟,没有任何响应,错误,消息或任何关于发生了什么的指示.
我尝试了以下包源:
都具有相同的结果.同样的事情发生的每包我试过(Newtonsoft.Json,Unity,等),所以它不只是EntityFramework.
这是在VS 2015和.Net 4.5.1中运行的.我已经引用了这个NuGet.VisualStudio 2.8.6包,但我也尝试过2.8.5和2.8.3但没有成功.
手动安装程序包(通过Visual Studio中的NuGet程序包管理器UI)按预期工作.
我也尝试了这个NuGet.CommandLine 2.8.6包,具有以下实现:
public void InstallPackage(Project project, string packageId, string version, string packageSource)
{
var repo = PackageRepositoryFactory.Default.CreateRepository("https://nuget.org/api/v2");
// Get the package install path
var solutionDirectory = Path.GetDirectoryName(project.DTE.Solution.FullName);
var path = Path.Combine(solutionDirectory, "packages");
// Initialize the package manager
var packageManager = new PackageManager(repo, path);
// Download and unzip the package
packageManager.InstallPackage(packageId, SemanticVersion.Parse(version));
var projectSystem = new MSBuildProjectSystem(project.FullName);
var localRepository = PackageRepositoryFactory.Default.CreateRepository(path);
var pathResolver = new DefaultPackagePathResolver(path);
var projectManager = new ProjectManager(localRepository, pathResolver, projectSystem, repo);
// Add references to project
projectManager.AddPackageReference(packageId, SemanticVersion.Parse(version));
}
Run Code Online (Sandbox Code Playgroud)
这会成功下载程序包,但无法使用此错误添加对项目的引用:
"'AdaptiveTriggerLibrary 1.0.3'软件包需要NuGet客户端版本'3.0'或更高版本,但当前的NuGet版本为'2.8.60717.93'."
我不确定它为什么要这样AdaptiveTriggerLibrary 1.0.3,我认为它是依赖的EntityFramework.
我追踪了一个3.1 beta的NuGet.exe并引用了它.事实证明IProjectSystem接口已从MSBuildProjectSystem类中删除- 并且没有可用的替代品(我可以找到),所以我甚至无法进入可以使用该版本编译的状态.看起来很破碎.
有任何想法吗?我想要的是一种vsix将nuget包安装到项目中的方法.
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |