问题标签 [external-assemblies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
74 浏览

.net - 当程序未通过 Visual Studio 启动时,如何在 Visual Studio 中激活单个 DLL 中的断点

我开发了一个 C# 程序,允许用户输入 C# 代码以获得可扩展性。此代码应在 Visual Studio Express 中开发,并将编译成 DLL,然后在主程序中使用。这部分很好。

为了帮助用户调试提供的代码,我想增加在用户 DLL 中激活断点的可能性,即使用解决方案中设置的断点。

如何在最终产品中实现这一点,即程序不是从 Visual Studio 启动的?

0 投票
2 回答
426 浏览

.net - 无法加载 System.Web.Mvc,即使它明显存在且版本正确

我得到其中之一:

它继续:

System.Web.Mvc 的正确版本位于 D:\Websites\Reporting\2016-02-18.2\bin 中。我整晚都在与这个项目作斗争,但我似乎无法解决这个问题。对于它的价值,我在 web.config 中也有绑定重定向。

我通常很擅长 dll 地狱类型的东西,但这让我感到困惑,因为据我所知,它似乎在告诉我它找不到位于 bin 目录中的文件并且是它正在寻找的版本为了。

我从这里去哪里?

编辑:我应该指出它在开发中运行良好,当我在开发机器上的某个地方部署项目时它也运行良好。但是当我部署到我们的登台服务器时,我得到了这个。不确定有什么不同。起初我确实遇到了一个问题,即 TFS 构建抓取了错误的 dll(即使我有 copy local = true 并且提示路径在那里它仍然抓取了不正确的版本,我不得不删除旧的 nuget 包文件夹以防止这种情况发生) . 我经常遇到这个错误,但这是我第一次得到它,当我检查它时文件实际上是正确的版本(并且双重、三重和四重检查它)。

0 投票
0 回答
567 浏览

c# - c# 如何以编程方式加载具有相同命名空间的外部程序集

我有一个“前端”表单应用程序。

在我的应用程序中,用户可以从不同的目录中选择外部 dll 程序集:

所有外部程序集都具有相同的命名空间和一些共同特征:

每个“插件”都有一个 UserControl.EntryPointView 类和一个静态 PluginInfos 类。

好的

当用户从文件系统中选择插件时,我执行以下操作:

现在用户可以在前端面板中加载他的插件.. 非常好

一段时间后,用户想要加载不同的插件,因此他选择了不同的 dll 文件,基本上我处理旧的 EntryPointView 实例并再次运行 LoadPlugin()。

我想你正在理解我想要实现的目标:各种插件程序集具有相同的名称/命名空间,因为我想通过复制过去的插件项目快速构建新插件 -> 添加/删除/更改功能 -> 构建为 dll ->等等

现在这对我来说似乎是合法的,但我不是很有经验的建筑师,所以我想问一些问题:

  • 我做对了吗?
  • 有没有更好更简单的方法来实现我的目标?
  • 我的建筑下面有什么鬼鬼祟祟的陷阱吗?
  • 当用户选择另一个时,有没有办法从内存旧插件程序集中“卸载”?

先感谢您

0 投票
1 回答
665 浏览

c# - Roslyn 中是否有方法或方式来枚举给定 C# 项目在编译时使用的所有程序集

我正在开发一个应用程序,用于检测并消除给定 C# 项目中无用的外部引用,例如引用但未使用的包。为此,我需要枚举在编译和运行时使用的所有程序集。对于那些在运行时使用的,我可以使用反射专门调用Assembly.GetReferencedAssemblies(). 但是对于那些仅在编译时使用的,我认为没有使用 Roslyn 就无法列出它们。请问您对我的问题有任何答案吗?