Nuget包中的转换文件出现问题

4
我正在为 OSGeo.FDO 创建 NuGet 包,遇到了以下问题。
FDO 使用一个名为 providers.xml 的文件列出所有可用的提供程序。因此,我创建了一个名为 OSGeo.FDO 的主要包,其中包含以下内容:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<FeatureProviderRegistry/>

然后,我为每个提供程序创建一个NuGet包。在每个NuGet包中,我都会包含一个名为providers.xml.transform的文件,其中包含以下内容:

<FeatureProviderRegistry>
   <FeatureProvider>
      <Name>OSGeo.PostgreSQL.3.6</Name>
      <DisplayName>OSGeo FDO Provider for PostgreSQL/PostGIS</DisplayName>
      <Description>Read/write access to PostgreSQL/PostGIS-based data store. Supports spatial data types and spatial query operations.</Description>
      <IsManaged>False</IsManaged>
      <Version>3.6.0.4707</Version>
      <FeatureDataObjectsVersion>3.6.0.4707</FeatureDataObjectsVersion>
      <LibraryPath>.\PostgreSQLProvider.dll</LibraryPath>
   </FeatureProvider>
</FeatureProviderRegistry>

当我只安装一个提供程序包时,它按预期工作,但一旦我安装另一个提供程序包,它就根本不会更改providers.xml文件。尽管它告诉我已经被修改,并且Visual Studio问我是否要重新加载它。我说我要,但它并没有添加任何内容。我的操作有问题吗?
1个回答

1
NuGet的XML转换可能有点古怪。如果模式允许,您可以通过添加属性使每个标签唯一来使其工作。例如,如果您有:
<FeatureProviderRegistry>
   <FeatureProvider name="OSGeo.PostgreSQL.3.6">
       etc...
   </FeatureProvider>
</FeatureProviderRegistry>

然后

<FeatureProviderRegistry>
   <FeatureProvider name="Other Name">
       etc...
   </FeatureProvider>
</FeatureProviderRegistry>

然后它应该做你想要的事情。我意识到这可能不是您想要的XML模式,但如果您可以这样做,它可以成为一种解决方法。


谢谢你的回答,David。这对我有用,但在某些情况下可能会出现问题。 - Bertrand Marron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接