小编Per*_*son的帖子

从命令行获取NuGet.exe版本

我想NuGet.exe使用命令行获取该版本.

我知道我可以将NuGet的版本作为Visual Studio的一部分运行,按照这里的说明,但我所追求的是类似于命令行的东西,例如:

nuget --version

有任何想法吗?

command-line version nuget

49
推荐指数
3
解决办法
4万
查看次数

为什么ASP.NET以不同方式解析汇编引用?

我真的很努力找到一个类似的问题来获得一些线索,但似乎没有人描述我们所拥有的情况,所以在这里.

背景

我们的产品具有以下一般设计:

[本地安装文件夹]

  • 包含一组.NET程序集,实现了我们的大部分产品功能.
  • 示例:Implementation1.dll,Implementation2.dll

[GAC]

  • ClientAPI.dll.我们的客户端程序集,将从最终用户Visual Studio项目中引用.对本地安装文件夹中的实现dll有强烈的引用.

在ClientAPI.dll中,我们有一个入口点,我们需要调用最终用户项目.让我们来称呼它Initialize().

我们首先要做的Initialize是使用事件在当前域上安装所谓的程序集解析处理程序AssemblyResolve.这个处理程序将知道如何定位实现dll并使用它们将它们加载到客户端进程中Assembly.Load().

考虑控制台应用程序.它看起来像:

class Class1
{
    void Main(string[] args)
    {
        ClientAPI.Initialize();

        // Use other API's in the assembly, possibly internally referencing the
        // implementation classes, that now will be resolved by our assembly
        // resolve handler.
    }
 }
Run Code Online (Sandbox Code Playgroud)

现在,在控制台/ Windows窗体/ WPF世界中一切都很好.我们的程序集解析处理程序已正确安装和调用,一旦ClientAPI.dll需要其功能,它就可以成功解析对实现DLL的引用.

问题陈述

话虽如此,我们打算不仅支持控制台或WPF应用程序,因此我们依赖于ASP.NET中的相同设计.因此,在VS 2010中创建一个新的ASP.NET Web应用程序项目,我们认为一切都会像以下一样简单:

class Globals : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        ClientAPI.Initialize();

        // ... …
Run Code Online (Sandbox Code Playgroud)

asp.net gac assembly-references assemblyresolve

6
推荐指数
1
解决办法
680
查看次数