如何让不同的解决方案引用同一个resx文件?

2024-02-12

我有一个 resx 文件,我想从多个解决方案\项目中使用它,并且我不想在每个解决方案中都有本地副本(仅在编译时带一份副本)。

有什么办法可以做到这一点吗?因为当我将其添加为“添加现有文件”时,它会在本地复制一份副本。

知道该怎么做吗?


如果您使用的是 .resx 文件,您可能希望利用 Visual Studio 为 .resx 文件提供的自动生成代码功能。如果您在多个项目中包含 .resx 文件,那么您可能希望每个项目自动生成自己的代码。您这样做可能是因为您想要对某些项目使用不同的代码生成器(ResXCodeFileGenerator 与 GlobalResourceProxyGenerator),或者您可能只是希望生成的代码的命名空间与项目保持一致。以下是如何进行设置。

我已经使用名为 SharedResx 的 C# 控制台应用程序项目设置了一个新的解决方案。我还在名为 Resources 的解决方案中添加了一个 C# 类库项目,并在该项目中添加了一个名为 MySharedResource.resx 的新资源文件。 Visual Studio 自动在我的 Resources 项目中创建一个 MySharedResource.Designer.cs 文件,其中的代码位于 Resources 命名空间内。

首先,将现有的 .resx 文件作为链接包含在 SharedResx 控制台应用程序项目中,正如其他答案所提到的那样。添加现有项目 -> 查找 ..\Resources\MySharedResource.resx -> 使用“添加”按钮上的下拉列表选择“添加为链接”。

接下来,您必须手动修改项目文件才能设置自动生成。您可以查看 Resources.csproj 以了解如何设置自动生成,作为它在 SharedResx.csproj 中的外观的指南。 右键单击 SharedResx 项目并选择卸载项目。再次右键单击并选择编辑 SharedResx.csproj。 向下滚动以查找与链接的 .resx 文件对应的 EmbeddedResource 元素:

<EmbeddedResource Include="..\Resources\MySharedResource.resx">
  <Link>MySharedResource.resx</Link>
</EmbeddedResource>

修改它以包含 Generator 元素和 LastGenOutput 元素:

<EmbeddedResource Include="..\Resources\MySharedResource.resx">
  <Link>MySharedResource.resx</Link>
  <Generator>ResXFileCodeGenerator</Generator>
  <LastGenOutput>SharedResx.MySharedResource.Designer.cs</LastGenOutput>
</EmbeddedResource>

注意:只有当您想像我在示例中所做的那样控制生成的文件的名称时,才需要手动编辑。否则,您可以使用 Visual Studio 的“属性”窗口中的“自定义工具”设置来指定 Generator 元素。

另请注意,在 LastGenOutput 元素中,我使用 SharedResx 项目名称作为前缀来命名生成的文件。这将导致 ResXFileCodeGenerator 在 .resx 文件所在的文件夹中创建一个名为 SharedResx.MySharedResource.Designer.cs 的文件。我尝试过在 LastGenOutput 元素中指定相对路径而不仅仅是文件名,以使生成的文件位于不同的文件夹(例如 SharedResx 文件夹)中,但我发现它不能一致地工作。虽然我第一次能够在正确的位置生成文件,但 LastGenOutput 元素丢失了其值,因此后续生成的文件不会定位到同一位置。我放弃了这一点,只是使用项目名称前缀作为文件名的一部分,以避免与其他项目可能发生的冲突。

现在,关闭 SharedResx.csproj 文件并再次右键单击以选择“重新加载项目”。右键单击 SharedResx 项目中链接的 MySharedResource.resx 文件,然后选择运行自定义工具。您现在应该看到名为 SharedResx.MySharedResource.Designer.cs 的新链接文件已作为 MySharedResource.resx 文件下的嵌套文件添加到项目中。您可能必须在“解决方案资源管理器”窗口中打开“显示所有文件”选项才能看到它。

现在,您已经从项目中包含的共享 .resx 文件自动生成了一个代码文件。

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

如何让不同的解决方案引用同一个resx文件? 的相关文章

  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 使用 xUnit 引用作为 NuGet 包部署项目

    我有一个包含一些类的库 我在几个单元测试项目中需要这些类 该库应作为 NuGet 包部署在我的私有存储库中 我已经在那里部署了一些 NuGet 包 所以我知道我必须做什么 但是 在这个库中我需要引用 xUnit 一旦我添加此引用 执行时就不
  • 安装 portmidi 库

    我正在尝试安装 portmidi 库 http sourceforge net apps trac portmedia wiki Installing 20 portmidi 20on 20 Linux http sourceforge n
  • Java“对compareTo(T)作为原始类型java.lang.Comparable的成员进行未经检查的调用”

    我正在尝试用 Java 来实现一个排序列表作为一个简单的练习 为了使其通用 我有一个add Comparable obj 所以我可以将它与任何实现 Comparable 接口的类一起使用 但是 当我使用obj compareTo 我得到的代
  • Visual Studio Git 工具,找不到页面,Visual Studio 2013.1

    我刚刚在 git 扩展的 vs 工具中遇到了一个奇怪的错误 当按下更改时 我收到以下错误 找不到页面 b38f4abc 2b2c 4e4d a047 eaaca7514610 我在ms上遇到过这个页面 http visualstudioga
  • Ruby Datamapper 表继承与关联

    我开始学习数据映射器 http datamapper org 我喜欢它的是我可以用真正的继承来编写我的模型 现在我想知道是否可以对此进行更高级 class Event include DataMapper Resource property
  • geom_area 绘图区域中的间隙

    我想根据因子变量 状态 来区分绘图颜色的区域 我使用 fill Status 但是 我看到绘图区域出现中断 关于如何避免这种情况以及为什么会发生这种情况有什么想法 建议吗 df1 lt data frame Date seq as Date
  • 如何使用 Spark Naive Bayes 分类器通过 IDF 进行文本分类?

    我想使用 tf idf 将文本文档转换为特征向量 然后训练朴素贝叶斯算法对它们进行分类 我可以轻松加载没有标签的文本文件 并使用 HashingTF 将其转换为向量 然后使用 IDF 根据单词的重要性对单词进行加权 但如果我这样做 我就会去
  • 如何将参数样条线一分为二?

    我有一个分段参数埃尔米特三次样条 对于样条线的每一段 公式为 Q 2u 3 3u 2 1 p i 2u 3 3u 2 p i 1 u 3 2u 2 u tan i u 3 u 2 tan i 1 其中 u 是 0 1 域中每个部分的参数 每
  • PHP 正则表达式查找非空格字母

    我想替换 F 但不是 F 我尝试过以下代码 但没有任何运气 preg replace F f str 尝试这个 preg replace
  • Thread对象和Worker对象有什么区别(php pthreads)

    到目前为止我找到的唯一解释是 http pthreads org http pthreads org 但这对于代码来说意味着什么呢 我什么时候应该使用 Worker s 什么地方应该使用 Threads Thanks 它们都是线程 但是 线
  • 将 Unicode 输出到控制台的最佳方法是什么?

    我正在 Visual Studio 2019 中使用 C 17 我已经阅读了一些有关编码的内容 但我仍然对它们不太满意 我想将 UNICODE 字符输出到屏幕 为此 我使用以下代码 include
  • VB.NET 中的 Windows 窗体控件何时何地调用 InitializeComponent?

    我正在 VB NET 中做一个 Windows 窗体项目 但 VB NET 对我来说是全新的 我主要是一名 C 开发人员 在 C Windows 窗体中 从窗体 控件的构造函数调用用户控件的 InitializeComponent 当我在
  • 为您的网站提取 LinkedIn 推荐

    如何提取或获取针对我的网站的 LinkedIn 推荐 有没有插件或者PHP脚本 您可以使用以下方法提取建议领英 API https developer linkedin com apis 具体来说配置文件API https develope
  • 尝试让机器人在使用命令时记录一些内容discord.py

    我试图让我的机器人在使用时记录一个事件 也称为 mod 命令 由于我的机器人位于多个服务器中 因此我有一个命令 人们可以在其中设置他们希望机器人记录事件的日志通道 到目前为止 我已经 commands command commands ha
  • 当键未知时从字典中删除项目

    按值从字典中删除项目的最佳方法是什么 即当项目的键未知时 这是一个简单的方法 for key item in some dict items if item is item to remove del some dict key 还有更好的
  • mongodb聚合嵌入文档值

    我正在努力解决 mongodb 中的一些聚合函数 假设我有一些这样的文件 id 1 periods id 12 tables id 121 rows id 1211 text some text id 1212 text some othe
  • css、javascript——从哪里开始? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是一名拥有 10 多年经验的 C C 程序员 我还了解 python 和 perl 但我从未使用过这
  • 正则表达式模式匹配字符串中至少 1 个数字和 1 个字符

    我有一个正则表达式 a zA Z0 9 这只允许输入字母数字 但如果我只插入数字或字符 那么它也接受它 我希望它的工作方式就像字段应该只接受字母数字值 但该值必须至少包含 1 个字符和 1 个数字 为什么不首先应用整个测试 然后添加针对字符
  • 以编程方式设置 UIButton 的背景不起作用

    我只是想简单地设置按钮的背景图像 但无论我尝试什么 它都什么也没做 我还放了一个UIImageView在那里查看图像文件是否有任何问题 但图像视图设置得很好 我必须在按钮的属性中设置一些东西吗 这里是代码 import UIKit clas
  • 如何让不同的解决方案引用同一个resx文件?

    我有一个 resx 文件 我想从多个解决方案 项目中使用它 并且我不想在每个解决方案中都有本地副本 仅在编译时带一份副本 有什么办法可以做到这一点吗 因为当我将其添加为 添加现有文件 时 它会在本地复制一份副本 知道该怎么做吗 如果您使用的