【问题标题】:Include referenced project's .config file包含引用项目的 .config 文件
【发布时间】:2012-04-03 16:10:06
【问题描述】:

不是excluding a file from the referenced output of an assembly,我要加一个!

我有一个控制台应用程序项目 (BuildTest1),它引用了第二个类库项目 (ClassLibrary1)。 Visual Studio 解决方案如下所示:

我有一个包含 app.config 的类库项目。我希望将此 .config 文件复制到引用项目的输出中,就像 .dll 和 .pdb 文件一样。类库的配置文件被复制到类库输出目录中作为'ClassLibrary1.dll.config'

我尝试将其添加到 .exe 项目的 .csproj 文件中,但似乎没有任何区别:

  <PropertyGroup>
    <AllowedReferenceRelatedFileExtensions>
        .pdb;
        .xml;
        .config
    </AllowedReferenceRelatedFileExtensions>
  </PropertyGroup>

【问题讨论】:

    标签: visual-studio-2010 msbuild msbuild-4.0


    【解决方案1】:

    我是如此接近...我将其追踪到从 Microsoft.Common.targets 中的 ResolveAssemblyReferences 目标调用的 MSBuild ResolveAssemblyReference 任务。这是填充 ReferenceCopyLocalPaths 项的内容。

    所以查看它匹配的文件模式,我发现文件扩展名 .dll.config(而不仅仅是 .config)起到了作用:

    <PropertyGroup>
        <AllowedReferenceRelatedFileExtensions>
            .pdb;
            .xml;
            .dll.config
        </AllowedReferenceRelatedFileExtensions>
    </PropertyGroup>
    

    【讨论】:

    • 感谢您的跟进。太糟糕了,您不能从库项目中以另一种方式对其进行配置,因为它会知道其他人需要它的配置文件。 “你想要我的配置文件,相信我”
    • 也许很明显,但要为可执行文件添加配置文件,必须添加“exe.config”,例如引用控制台应用程序时。
    • 伙计,你拯救了我的一天 :)
    • 这太棒了。很高兴我不必在构建过程中进行一些手动复制步骤。谢谢! :D
    • 非常感谢您的回答。为我节省了很多时间和精力。在我的上下文中,它用于运行测试项目的 VStest,作为 TFS/RM 构建和部署过程的一部分。
    猜你喜欢
    • 2019-06-05
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    相关资源
    最近更新 更多