Visual Studio 扩展中的 app.config?

2024-02-08

我创建了一个代表 Visual Studio 项目向导(vsix 包)的 Visual Studio 扩展。我正在尝试连接 log4net,但没有成功。我已将问题归结为 app.config 未正确加载。

我已将其添加到我的 Visual Studio 扩展中的 app.config 中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="test" value="hello world"/>
  </appSettings>
</configuration>

在我的 IWizard 实现中,我添加了这行代码:

var test = System.Configuration.ConfigurationManager.AppSettings["test"];

但是,那test调试时上面的变量始终为空。

我已经验证了这些事情:

  • App.config 设置为“构建操作:内容”
  • App.config 设置为复制到输出目录:始终复制
  • App.config 设置为“包含在 VSIX 中:True”
  • App.config 文件存在于我的C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\16.0_...\Extensions\<Name>\<Company>\1.0 folder

我缺少什么?如果 VSIX 扩展开发中不允许使用 App.config,那么您将如何连接 log4net?


我缺少什么?如果 VSIX 中不允许 App.config 扩展开发,您将如何连接 log4net?

App.Config 文件在构建期间被复制并重命名为 .exe.config,因此只有可执行文件才能直接使用 ConfigurationManager 拥有和使用“App.Config”文件。 通常,VSIX 项目会生成一个在 Visual Studio 可执行文件 (devenv.exe) 中加载的 DLL,因此直接使用 ConfigurationManager 的项目只能从 devenv.exe.config(文件夹 C:\Program Files (x86) )\Microsoft Visual Studio 16.0\Common7\IDE)。

当我用我唯一的测试它时app.config在 vsix 项目中的文件中,该项目似乎无法仅从默认值获取我的自定义文件的值devenv.exe.config其中仅包含两个值TestProjectRetargetTo35Allowed and EnableWindowsFormsHighDpiAutoResizing这意味着在任何情况下,它都会从 devenv.exe.config 获取值。

Solution

1#.您可以在中定义新密钥devenv.exe.config文件,您可以直接从文件中获取它。

 <appSettings>
    <add key ="TestProjectRetargetTo35Allowed" value ="true"/>
    <add key ="EnableWindowsFormsHighDpiAutoResizing" value ="true"/>
      insert new key here
  </appSettings>

2#.您可以通过代码获取此app.config,并直接从中获取键的值。

ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = @"xxxxxxxx"; // the path of the custom app.config
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
var test = config.AppSettings.Settings["test"].Value;

此外, 我建议解决方案2可以更好、更轻松地解决您的问题。 希望它可以帮助你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 扩展中的 app.config? 的相关文章

随机推荐

  • 如何制作全宽 SwiftUI 列表?

    我想要我的List为全宽 填充是自动添加的 出于我的目的 我不希望这样 这只是示例代码 这是我的代码 struct ViewModel Identifiable let title String let id UUID struct Con
  • jquery在for循环中延迟

    所以我一直在研究 jquery deferred 但在循环中检索数据时遇到问题 延迟部分似乎只处理最终迭代中的数据 如果数组中只有一项 它也会失败 所以我不确定发生了什么 我有各种城市名称 我试图从谷歌地图反向地理编码中获取每个城市的中心坐
  • ImageView的src和background有什么区别

    我对使用感到困惑src or background for an ImageView 我知道前者的意思是这个的内容ImageView后者指的是背景ImageView 但如何决定使用哪一个呢 我看不出有什么区别 所有视图都可以拍摄背景图像 T
  • 如何展平Nuget包内容文件?

    Nuget 包问题 buildAction copyToOutput flatten 被忽略 包项目 ThisProject vbproj Net 标准库 2 0 nuspec 文件
  • 提取单词周围的单词并将结果插入数据框列中

    我有一个数据框 df 有 3 列 如下所示 company year text Apple 2016 The Company sells its products worldwide through its 我想在以下位置搜索 产品 df
  • 如何通过 REST API 创建 Pod

    如何使用 REST API 创建 Pod 我查看了 Kubernetes API 文档 https kubernetes io docs reference generated kubernetes api v1 10 strong wri
  • 我可以使用 vs2010 开发 .net 4.5 应用程序吗

    我已经安装了 net 4 5 框架http www microsoft com en in download details aspx id 30653 http www microsoft com en in download detai
  • 如何使用 Perl 的 XML::Twig 将子元素添加到 XML?

    我有以下 XML 文件
  • 用C#创建QRCode并保存为图像

    我从 Web 应用程序上的 URL 接收数据 该数据是使用 API 响应动态生成的 我必须把它放在一个QRCode并将这个QRCode发送回前端供我的客户下载 我们使用 C 作为后端 使用 React js 作为前端 我尝试过使用ZXIng
  • 确定印度拉米纸牌是否为获胜牌 - Java

    我正在寻找一种有效的解决方案来确定一手牌是否是印度拉米纸牌中的获胜手牌 印度拉米纸牌在混合方面与金罗米纸牌类似 人们可以融合相同花色的序列 顺子 或融合一组相同的值 序列和集合都应至少包含 3 张牌 与金罗米牌不同 印度拉米牌一手牌由 13
  • 使用 SBT 运行 JUnit 测试

    我有一个 0 13 7 SBT 项目 有几个子项目 其中之一叫做webapp 并且它有很多JUnit测试在webapp src test java 运行时 sbt webapp test 只有ScalaTest测试已运行 但没有 JUnit
  • 向 MQ 发送消息时如何删除默认的 Spring JMS 模板标头?

    使用 Java Spring 与 WebSphere MQ 交互并尝试向其发送消息 Spring 不断向其添加以下标头信息 RFH MQSTR
  • 如何更改 SQL Server 的默认语言?

    现在当我查询时 SELECT language 它得到 us english 但我需要俄语 我不能使用SET LANGUAGE russian对于每个查询 我需要默认设置它 对于所有新会话 使用 SQL Server Management
  • Java - 从 JFileChooser 中删除组件(文件类型)

    如何从 JFileChooser 中删除组件 文件类型 标签及其组合框 我有以下代码 JFileChooser fileChooser new JFileChooser fileChooser setFileSelectionMode JF
  • IF 语句中 OR 和 AND 运算符的中断条件

    If 语句和任何其他布尔比较足够智能 可以在评估时在第一个 FALSE 值处停止A and B and C and D评估时首先为 TRUE 值A or B or C or D 这种行为的名称是什么 这是编译器优化吗 如果是这样 有没有办法
  • 如何强制完全下载链接上的txt文件?

    我有一个简单的文本文件 我想在任何锚标记链接上下载该文件 但是当我点击该链接时 txt 文件显示给我但未下载 我已经尝试过这段代码 a href test txt Click here a 单击链接时下载文件 而不是导航到文件 a href
  • 路由错误未初始化常量用户

    我是 Rails 新手 我正在尝试为演示应用程序设置 使用 facebook 登录 我正在使用 OmniAuth 并遵循本教程 https github com plataformatec devise wiki OmniAuth 概述 h
  • 多类模型的准确率、精确度和召回率

    我该如何计算accuracy 精确 and recall对于混淆矩阵中的每个类 我正在使用嵌入式数据集 iris 混淆矩阵如下 prediction setosa versicolor virginica setosa 29 0 0 ver
  • 打印 Windows 窗体

    我继承了一些代码来打印表单的内容 但是在纸上生成的图像似乎有某种阴影 模糊 就好像它试图进行抗锯齿但做得不太好 并且字母在边缘像素化 有谁知道提高最终质量的方法吗 System Drawing Printing PrintDocument
  • Visual Studio 扩展中的 app.config?

    我创建了一个代表 Visual Studio 项目向导 vsix 包 的 Visual Studio 扩展 我正在尝试连接 log4net 但没有成功 我已将问题归结为 app config 未正确加载 我已将其添加到我的 Visual S