首页 > 解决方案 > 装配体以新的 csproj 格式探测私有路径

问题描述

我最近完成了将 WPF 项目转换为更精简的新 csproj 格式。

但是,我还剩下一个缺失的部分,probing为程序集添加了一个路径,这是旧app.config文件中曾经存在的东西。由于缺少这个,我的应用程序找不到所需的 dll。

我进行此设置的方式是使用 Post-build 事件清除项目并将其移动到 bin 文件夹:

SET folder=bin
rmdir "$(TargetDir)%folder%" /s /q
mkdir "$(TargetDir)%folder%"
move "$(TargetDir)*.dll" "$(TargetDir)%folder%\"

我尝试向 .csproj 文件添加一些条目,但无济于事。我相信这更适合编译应用程序:

<PropertyGroup>
    <ReferencePath>bin</ReferencePath>
</PropertyGroup>
<PropertyGroup>
    <AssemblySearchPaths>
    $(AssemblySearchPaths);
    $(ReferencePath);
    </AssemblySearchPaths>
</PropertyGroup>

我想我的主要问题是,我应该还有 app.config,还是有更好的 .csproj 方法可用?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin"/>
    </assemblyBinding>
  </runtime>
</configuration>

如果我包含它,我的应用程序将起作用,但我想知道我是否可以简化它,或者总体上以更好的方式做到这一点。

标签: c#msbuildcsproj

解决方案


推荐阅读