C# ClickOnce DLL问题

C# ClickOnce DLL问题,c#,clickonce,C#,Clickonce,我在VS2008中开发了一些C#插件库,这些库与其他人的应用程序一起部署。他们使用ClickOnce进行部署,我想我正在尝试做一些非标准的事情 在安装了应用程序和我的DLL的其中一台计算机上,我想手动更换一些DLL以测试修复程序 应用程序位于c:\Documents and Settings\testsystem\Local Settings\Apps\2.0\blahblahblah…长路径中\ 我的DLL位于该路径下的子目录中 我的测试人员获取了我的DLL并将它们放在该子目录中,但从跟踪输出

我在VS2008中开发了一些C#插件库,这些库与其他人的应用程序一起部署。他们使用ClickOnce进行部署,我想我正在尝试做一些非标准的事情

在安装了应用程序和我的DLL的其中一台计算机上,我想手动更换一些DLL以测试修复程序

应用程序位于c:\Documents and Settings\testsystem\Local Settings\Apps\2.0\blahblahblah…长路径中\

我的DLL位于该路径下的子目录中

我的测试人员获取了我的DLL并将它们放在该子目录中,但从跟踪输出来看,他发送给我的DLL的旧版本实际上正在运行。我让测试人员验证DLL是否在子目录中,跟踪日志显示正确的路径,表明应用程序正在该位置运行,但跟踪输出不是来自我发送给他的DLL

在这一点上,ClickOnce部署的东西对我来说都是精灵的魔法。它似乎没有覆盖我的新DLL,但它肯定没有运行我期望它运行的版本。有人有什么想法吗

谢谢,
Matt

在这种情况下,发布带有跟踪DLL的clickonce应用程序更新对您来说是不可能的吗?这是在clickonce中实现魔术的最简单方法。

简单地安装本地构建的版本(而不是clickonced)怎么样。显然,如果您试图对权限错误进行故障排除,这将无助于您:(


但是没有任何东西会阻止您在本地系统上以exe的形式运行代码。

您确定有正确的目录吗?单击一次的目录结构有点复杂,DLL可以重复多次。它并不总是从您期望的位置提取DLL。它也可能从本地系统中提取DLL如果有人把它们放在那里,GAC


试着运行,查找你的应用程序并检查它的句柄。这将告诉你有问题的DLL的正确路径。

戴上奇怪的解决方法帽子,你可以:

  • 以其他名称发布应用程序,并让测试人员安装该版本
应用程序的名称空间必须更改,但请同时更新ClickOnce应用程序名称,否则您将陷入混乱

  • 发布版本号较低的应用程序
我不得不说,我不能100%确定这是否有效,但是如果你以较低的数字发布它,你的其他客户端不应该得到更新,但是测试人员必须卸载然后安装并获取旧版本。不过要注意,在测试人员安装完测试版本后,你可能希望切换回真实版本,然后测试人员将每次他启动应用程序时,都必须对安装更新说不


我肯定会用另一个名称发布,你会有一个用于所有测试目的的版本。

是的,不幸的是,这不是一个选项。说得好,罗伯特。这是一个令人沮丧的日子,我用了我的大脑(和我经常使用的procexp),而不是让情况占据我的优势……好吧,你知道。谢谢。