在 dll 中嵌入条件 XML 文件
Embed a conditional XML file in a dll
我想为从嵌入式资源读取的 dll 创建一个配置 class。我已经创建了多个 xml 文件,其中包含针对我们所有不同环境的配置。我对每个环境 DEV、QA、PROD 都有一个单独的配置,与 xml 文件上的前缀相匹配。
.Configuration/DEV.config.xml
.Configuration/QA.config.xml
.Configuration/PROD.config.xml
等等
我们以前从未使用过 MSBuild 并且感到困惑,因为似乎有大约 3-4 种不同的使用方式(pre/post 构建事件、xml 脚本、自定义任务等)。我想要做的就是将相应的文件重命名为 config.xml 并将其嵌入到 dll 中,以便配置 class 可以在 运行.[=13= 时读出它]
我见过类似的问题,只是嵌入一个文件,但 none 同时嵌入和重命名。我假设任何类型的嵌入都需要作为预构建事件来完成。
通常我会尝试一些零碎的东西,但我不知道从哪里开始,如果有人能指出我正确的方向,我将非常感激。
更新:
所以在 jlew 的帮助下我应该能够做这样的事情
<ItemGroup>
<EmbeddedResource Include="Configuration$(Configuration).config.xml" >
<LogicalName>config.xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
您可能想要做的(没有看到您的代码)是不重命名输入文件,而是指示 MSBuild 使用 "logical name" 作为与文件不同的资源。
<ItemGroup>
<EmbeddedResource Include="Dev.config.xml">
<LogicalName>MyRenamedConfig.config.xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
如果您直接使用 csc.exe
,您可以执行类似的操作:
csc ... /resource:Dev.config.xml,MyRenamedConfig.config.xml
我想为从嵌入式资源读取的 dll 创建一个配置 class。我已经创建了多个 xml 文件,其中包含针对我们所有不同环境的配置。我对每个环境 DEV、QA、PROD 都有一个单独的配置,与 xml 文件上的前缀相匹配。
.Configuration/DEV.config.xml
.Configuration/QA.config.xml
.Configuration/PROD.config.xml
等等
我们以前从未使用过 MSBuild 并且感到困惑,因为似乎有大约 3-4 种不同的使用方式(pre/post 构建事件、xml 脚本、自定义任务等)。我想要做的就是将相应的文件重命名为 config.xml 并将其嵌入到 dll 中,以便配置 class 可以在 运行.[=13= 时读出它]
我见过类似的问题,只是嵌入一个文件,但 none 同时嵌入和重命名。我假设任何类型的嵌入都需要作为预构建事件来完成。
通常我会尝试一些零碎的东西,但我不知道从哪里开始,如果有人能指出我正确的方向,我将非常感激。
更新:
所以在 jlew 的帮助下我应该能够做这样的事情
<ItemGroup>
<EmbeddedResource Include="Configuration$(Configuration).config.xml" >
<LogicalName>config.xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
您可能想要做的(没有看到您的代码)是不重命名输入文件,而是指示 MSBuild 使用 "logical name" 作为与文件不同的资源。
<ItemGroup>
<EmbeddedResource Include="Dev.config.xml">
<LogicalName>MyRenamedConfig.config.xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
如果您直接使用 csc.exe
,您可以执行类似的操作:
csc ... /resource:Dev.config.xml,MyRenamedConfig.config.xml