Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改程序集名称破坏了xaml命名空间_C#_Wpf_Xaml_.net Assembly - Fatal编程技术网

C# 更改程序集名称破坏了xaml命名空间

C# 更改程序集名称破坏了xaml命名空间,c#,wpf,xaml,.net-assembly,C#,Wpf,Xaml,.net Assembly,我有一些应用程序名为application.exe。我使用它来显示不同类型的文档。每个文档类型模板都是一个单独的dll文件,其中包含wpf用户控件和业务逻辑。所以当我启动我的应用程序时,我下载了xml文件和Template.dll,然后我展示了一些用于工作的wfp表单 我的Application.exe和Template.dll都使用一些名为Application.CustomControls.dll的程序集。我将其包含在应用程序的安装项目中,因此当我的application.exe尝试显示文档

我有一些应用程序名为
application.exe
。我使用它来显示不同类型的文档。每个文档类型模板都是一个单独的dll文件,其中包含wpf用户控件和业务逻辑。所以当我启动我的应用程序时,我下载了xml文件和
Template.dll
,然后我展示了一些用于工作的wfp表单
我的
Application.exe
Template.dll
都使用一些名为
Application.CustomControls.dll的程序集。我将其包含在应用程序的安装项目中,因此当我的
application.exe
尝试显示文档时,
application.CustomControls.dll
已在应用程序域中

现在,我的客户要求将
Application.CustomControls.dll
name更改为
CustomControls.dll
。请不要问。只是程序集的文件名,而不是名称空间或其他内容
我可以毫无问题地申请。我可以重建解决方案并使用新命名的dll文件创建安装项目。但我不能打开旧模板,因为里面都有旧名字。特别是在xaml中,例如:

xmlns:Controls="clr-namespace:CustomControls.Design;assembly=Application.CustomControls"
我不能只是重建所有模板。这是可以做到的,但在prod中,总会有一些用户忘记升级软件的时候,等等。因此,要么旧应用程序无法打开新模板,要么新应用程序无法打开旧模板

我没有更改名称空间或
Application.CustomControls.dll的版本,只更改名称。我是否可以解决这些问题并在应用程序内重新绑定程序集链接?使用
AppDomain.AssemblyResolve
事件或配置文件?

您不能同时包含
Application.CustomControls.dll
CustomControls.dll
,其中后者是具有不同名称的第一个副本吗?@mm8 No.Project“Application.CustomControls”在我的解决方案中现在另存为调试(发行版)\CustomControls.dll和我将此项目作为项目参考包含在Application.exe中。我尝试添加“Application.CustomControls.dll”,但我刚刚遇到一个错误,无法添加对“Application.CustomControls.dll”的引用。项目中已存在对组件“Application.CustomControls”的引用。请将XAMl文件中的“Application.CustomControls”替换为“CustomControls”?@mm8,这正是我的问题。我需要替换xaml中的代码,重建Template.dll并将其上载到服务器上。上传不是我的工作,我无法控制何时以及如何上传。同时,我需要创建新版本的Application.exe,并以某种方式强制所有用户(在不同的办公室)更新他们的软件。即使是很小的更新,这也是一个问题。有些用户会尝试使用旧应用程序打开新模板,然后反向打开。如果有办法捕获对旧dll的调用,并在Application.exe中将其替换为新的dll,我可以有一些空闲时间在模板中更改旧代码。您不包括
Application.CustomControls.dll
CustomControls.dll
,其中后者是具有不同名称的第一个dll的副本吗?@mm8 No.Project我的解决方案中的“Application.CustomControls”现在另存为调试(发行版)\CustomControls.dll,我将此项目作为项目引用包含在Application.exe中。我尝试添加“Application.CustomControls.dll”,但出现了一个错误,无法添加“Application.CustomControls.dll”的引用。项目中已存在对组件“Application.CustomControls”的引用。请将“Application.CustomControls”替换为“CustomControls”“那么在你的XAMl文件中?@mm8这正是我的问题。我需要替换xaml中的代码,重建Template.dll并将其上载到服务器上。上传不是我的工作,我无法控制何时以及如何上传。同时,我需要创建新版本的Application.exe,并以某种方式强制所有用户(在不同的办公室)更新他们的软件。即使是很小的更新,这也是一个问题。有些用户会尝试使用旧应用程序打开新模板,然后反向打开。如果有办法捕获对旧dll的调用,并在Application.exe中将其替换为新的dll,我可以有一些空闲时间来更改模板中的旧代码