You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中WPF应用关联全局DLL不复制至输出目录及XAML控件引用

解决方案

一、共享普通DLL无需复制到输出目录

1. 添加引用并配置属性

找到自定义目录中的目标DLL,右键项目 -> 添加 -> 引用 -> 浏览选择该DLL。选中引用后,在属性面板设置:

  • 复制本地:False
  • 特定版本:False(若无需严格版本匹配,方便后续更新DLL)

2. 配置程序集探测路径

根据自定义目录的位置选择对应配置,修改项目的app.config:

情况1:自定义目录为应用输出目录的相对路径

比如所有应用输出在bin\Debug,共享DLL放在上级SharedDlls目录:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <!-- privatePath为相对exe目录的路径,多个目录用分号分隔 -->
      <probing privatePath="..\SharedDlls"/>
    </assemblyBinding>
  </runtime>
</configuration>

情况2:自定义目录为绝对路径

需要指定DLL的版本号(可在DLL属性的“详细信息”中查看):

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="YourSharedDllName" publicKeyToken="null" culture="neutral"/>
        <!-- 未强签名的DLL publicKeyToken为null,版本号需与DLL一致 -->
        <codebase version="1.0.0.0" href="file:///C:/YourCustomDir/YourSharedDllName.dll"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

二、自定义UserControl库在XAML中直接使用

1. 基础引用配置

同普通DLL:添加UserControl库DLL的引用,设置复制本地为False,特定版本为False,并在app.config中配置程序集探测路径(同上一步)。

2. 配置设计时路径支持

Visual Studio设计器需要在设计时找到DLL,需修改项目文件(.csproj):
右键项目 -> 卸载项目 -> 编辑项目文件,在<PropertyGroup>节点内添加:

<!-- 替换为你的自定义DLL目录 -->
<ReferencePath>C:\YourCustomControlDir;$(ReferencePath)</ReferencePath>

保存后重新加载项目。

3. XAML中引用控件

在XAML的窗口/页面根标签中添加命名空间:

xmlns:custom="clr-namespace:YourControlNamespace;assembly=YourControlDllName"

之后即可直接使用控件:

<custom:YourUserControlName/>

批量配置优化(多项目场景)

若有多个WPF项目,可在解决方案根目录创建Directory.Build.props文件,统一配置引用路径,避免逐个修改项目:

<Project>
  <PropertyGroup>
    <ReferencePath>C:\YourCustomDir;$(ReferencePath)</ReferencePath>
  </PropertyGroup>
</Project>

内容的提问来源于stack exchange,提问作者DaveUnbelievable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:10:08