问题标签 [shadow-copy]
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.
c# - 如何使我的 dll 只能从代码库加载?
我的项目(某种处理引擎)分为 2 个 dll:一个带有接口声明,一个带有功能。通常该项目由外部 Delphi 项目通过 COM 技术使用。
假设我的程序切水果。外部delphi程序创建Fruit对象并填充其属性:权重(int),名称(字符串)和ProgressUpdater(类型为IProgressUpdater,在带有接口的第二个dll中声明)。在这个exst程序创建器切片器之后,制作切片器.AddFruit(newFruit)并调用 Slicer.Slice()。
没什么特别的。在现实生活中的 delphi 项目是 Outlook 插件。但问题是——有时一些 VSTO 插件会使 Outlook 在“影子复制文件”模式下工作,因此当 delphi 项目启动并创建 Slicer 对象时,我们的 c# 程序集将被放入临时文件夹中,并且程序集将使用此本地路径创建。嗯......这仍然不是问题。但问题是当delphi项目创建newFruit然后传递ProgressUpdater对象时,在我的切片器程序集中我无法获取外部ProgressUpdater:“返回参数的类型无效”,但仍然可以获得简单类型(重量,名称)的字段。
它仅在 shadowCopyFiles 模式打开时发生。所以我的猜测是——外部 ProgressUpdater 的程序集和 Slicer 程序集放在不同的地方,所以不能通过。我的问题是如何避免我的 dll 被“影子复制”?还是有一些不同的解决方案?
c++ - 仅当从我的程序中打开 CMD 时才会出现奇怪的 CMD 错误
这肯定是一个奇怪的问题。
如果我直接打开命令提示符窗口(在开始时搜索 cmd,右键单击 > 在此处打开命令窗口,在 bat 文件中打开命令窗口,等等......)输入的所有命令都运行得很好。
如果我从我的 C++ 应用程序(system("cmd");
或QProcess::startDetached("cmd");
其他......)中打开命令提示符窗口,我输入的命令会抛出错误。
以下是一些在从我的应用程序打开的 cmd 中不起作用的命令:
等等......我得到了周围的错误Class not registered
。Initialization failure
与卷影副本有关的任何事情都不起作用。但同样奇怪的是,当 cmd 以传统方式打开(而不是从程序中)时,这些相同的命令工作得很好。两个 cmd 实例都具有管理员权限。
所以我的问题是,我打开 cmd 的方式如何影响某些命令是否有效?我所看到的一切都表明应该没有区别。
vb.net - 防病毒软件不断删除我的插件,如何在 VB.Net 中禁用 Shadow-Copy?
所以这对我来说变得非常烦人。每当我编译 Outlook 插件时,卷影副本都会在程序集目录中创建一个副本。然后我的防病毒软件检测到新的 DLL 并立即将其删除。(良好的杀毒软件,无需等待,糟糕的杀毒软件)
我宁愿不从所有防病毒扫描中排除程序集目录,所以我试图找到一种方法来在调试期间禁用 vb.net 程序集中的卷影复制。在开发过程中永久保存也很好。或者,即使是一种不会在防病毒扫描中留下漏洞的解决方法也会很棒。
我在禁用卷影复制时发现的所有内容都与 asp.net 有关,我无法弄清楚如何在 vb.net 配置文件中对其进行配置。
具体包括:Visual Studio(2010、2012)、Norton Internet Security 22.5.4.24、Outlook 2010、Windows 8.1
先感谢您。
京东
c# - c# wpf 中的卷影副本没有复制我的 c++ dll(非托管代码)
我在 wpf c# 中有一个应用程序,它也使用 c++ dll。当我尝试使用 AppDomain 更新此应用程序并将 ShadowCopyFiles 设置为 true 时,它会创建一个缓存文件夹并从那里启动我的应用程序。但是,它不会复制我的 c++ dll(非托管代码),并且应用程序会从原始 bin 文件夹中访问它们。由于同样的原因,我无法更新我的 c++ dll。类似的问题已经存在Shadow Copying,以及从任意文件夹加载的混合 C# 和 C++ DLL,但我没有找到任何合适的答案。
windows - 从卷影副本备份
所以,我想使用批处理脚本从卷影副本中进行备份。这就是我到目前为止所拥有的:
输出:
我只需要获取 findstr 返回的最后一行中的路径,但我真的不知道我将如何完成它。
在获取路径并\
在末尾添加 a 之后(如果路径以 a 结尾,它只会创建符号链接\
)创建一个符号链接到它。
所以,我迷失在它的中间。
我找到了这个问题的答案:
但是伙计,批处理语法是一团糟,我不理解答案中的一行代码以使其适应我的项目。
有人可以帮助我并详细解释我需要做什么(或代码,如果你提供的话),这样我就可以理解我在做什么,而不仅仅是粘贴和复制,谁知道呢,做一些改进/更改。
c# - 涉及影子复制文件夹的外部组件异常
我有一个应用程序在尝试从 C# 到 C++ 通信时抛出“外部组件已引发异常”错误(更正:这是从 C++ 到 C#)。C# 解决方案涉及我们认为可能与该问题相关的 VSTO 加载项。只有用户能够复制此问题,并且该问题的临时解决方案是清除其计算机上的“AppData\Local\assembly\dl3”卷影副本文件夹。似乎 VSTO 加载项正在将该文件夹中的 dll 创建为卷影副本,并且似乎没有办法阻止它。
有人对如何解决这个问题有任何想法吗?
编辑:仅当 C++ 应用程序调用 C# DLL 的网络更新发生并且另一个用户仍然登录时,才会出现此问题。如果由 VSTO 加载项创建的 DLL 的卷影副本不存在,则没有问题。如果卷影副本确实存在,那么这两个产品将无法通信,直到 C# 应用程序发生更新或删除了卷影副本。使用 VSTO 加载项将导致重新创建卷影副本并再次中断连接。
c# - 在 IIS 中使用 AppDomainSetup.ShadowCopyDirectories
我的网站使用了大量的 DLL。他们中的大多数从不改变,但我经常改变其中之一。
每次我这样做时,站点都会在 IIS 重新启动时关闭大约 5 分钟。我想减少这个。
我读过当你有很多 DLL 文件时,影子复制很慢,所以我想在大多数情况下禁用它,但我确实想在我经常修改的 DLL 上使用它,这样我就可以改变它而不必停止IIS。
有关卷影复制的文档似乎假定您在创建 AppDomain 之前对其进行了设置,但是 IIS 处理了 AppDomain 的创建,所以我不知道如何使用 AppDomainSetup.ShadowCopyDirectories 属性来告诉它不要进行任何卷影复制在主 /bin 文件夹中,并且仅在 /bin/changesFrequently 文件夹中进行卷影复制。我可以以某种方式在 web.config 中设置它吗?有没有办法在影子复制过程开始之前在 IIS 中运行 c# 代码?
.net - Visual Studio 2015,T4 模板:Assembly 指令不使用影子复制
重建解决方案时,我收到错误消息:-
当我删除程序集指令时,解决方案会重建:-
如何解决这个问题?我猜它与 Visual Studio 中的影子复制配置有关,但我找不到它。
powershell - vssadmin 和 powershell 对象到数组
我一直在考虑定期从我们的服务器中提取一些数据。我进行了一些研究并找出哪个服务器在哪个磁盘上运行 VSS,我发现它具有挑战性 - 或者只是没有找到正确的命令。
我得到的关闭是这样的: vssadmin list shadowstorage 但它是一个我无法弄清楚的 powershell 对象。WI得到我需要搜索'(D:)'之类的字符串并获得该行的结果。
我想以数组格式选择驱动器和空间信息,请。
编辑:我想把这些数据拿出来:
全部在一个字符串数组中,所以我可以使用它。
如果有人可以为这个黑暗的话题带来一些启示,我将不胜感激。
c# - 由于来自 ReSharper 的无法控制的影子复制,应用程序资源在单元测试中中断
背景:
在我正在开发的应用程序上,我正在使用 Visual Studio 2015、SpecFlow 和 ReSharper 2016.3 的混合体编写测试(我将其缩写为 R#,因为我很懒。)
我正在处理的应用程序基于模板发送 HTML 格式的电子邮件,这些电子邮件存储在 HTML 文件中,这些文件在 Visual Studio 2015 中设置为始终复制。
问题:
当我尝试运行测试时,出现以下异常:
该目录不是我正在处理的项目的输出目录,所以我仔细检查了我的 R# 设置,并确认 Shadow Copy 已关闭。非常清楚,我的 R# Shadow Copy 复选框确实未选中。
有问题的代码非常简单。TestContext.CurrentContext.TestDirectory
由于应用程序本身需要此代码,因此我不能、不应该、甚至不想做正常的补救措施。将测试框架代码放在被测应用程序中是合适的。
如下例所示:
问题:
1. 我在 R# 测试中关闭了 Shadow Copy。为什么这还在做影子副本?
2. 鉴于这不是测试代码,因此我可以通过哪些方式解决 R# 不尊重 Shadow Copy 复选框的事实,因此通常适用于测试代码的补救措施不适用于这种情况?