Nuget包中的转换文件问题
问题描述:
我正在为OSGeo.FDO创建nuget包,我遇到以下问题。Nuget包中的转换文件问题
FDO使用一个providers.xml
文件列出它可以使用的所有提供程序。所以,我创建了一个主呼包OSGeo.FDO
包含以下内容:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<FeatureProviderRegistry/>
然后,我创建一个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问我是否要重新加载它。我说我这样做,但它没有增加任何东西。
我在做什么有什么问题?
答
NuGet XML转换可能有点古怪。如果模式允许,可以使其工作的方式是通过添加属性来使每个标记具有唯一性。例如如果你有
<FeatureProviderRegistry>
<FeatureProvider name="OSGeo.PostgreSQL.3.6">
etc...
</FeatureProvider>
</FeatureProviderRegistry>
然后
<FeatureProviderRegistry>
<FeatureProvider name="Other Name">
etc...
</FeatureProvider>
</FeatureProviderRegistry>
那么就应该做你想要什么。我意识到这可能不是您想要XML模式的方式,但是如果您可以这样做,那可能是一种解决方法。
谢谢大卫的回答。它适用于我,但在某些情况下可能确实存在问题。 – 2011-02-28 11:04:43