如何在 VSTS 构建期间使用 OctoPack 避免 XML 文件中的无效字符?
How do I avoid invalid characters in XML files using OctoPack during VSTS builds?
我在构建过程中看到这些错误。
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\Microsoft.Data.Services.Client.xml' contains invalid characters.
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\Microsoft.Data.OData.xml' contains invalid characters
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\Microsoft.Data.Edm.xml' contains invalid characters.
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\System.Spatial.xml' contains invalid characters.
当我 运行 MsBuild 有相同的争论时,我没有在本地获取它们,我什至可以 运行 私人构建代理上的 MSBuild 也很好。
我有其他项目很好地使用了 OctoPack,并且使用了这些包。我将非常仔细地仔细检查它们,因为其他的工作正常。
问题已通过将受影响的软件包从 5.6.4 升级到 5.7.0(当前最新版本)得到解决。
我花了好几个小时试图解决这个问题。我想我可以通过发布我会问的问题和答案来节省其他人的时间。
还要确保你的主要目标的 App.config/web.config 也有绑定重定向:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
</dependentAssembly>
您可能在解决方案的 service/utility 项目中有这些,但如果它们不存在于您的 "deployable" 目标的主配置文件中,它们将被忽略,您可能仍会选择向上引用
C:\Program Files (x86)\Microsoft WCF Data Services.6.4
DLL 的版本,而不是您想要的 NuGet 打包版本,来自您的 "packages" 文件夹。
我在构建过程中看到这些错误。
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\Microsoft.Data.Services.Client.xml' contains invalid characters.
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\Microsoft.Data.OData.xml' contains invalid characters
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\Microsoft.Data.Edm.xml' contains invalid characters.
C:\Program Files (x86)\Microsoft WCF Data Services.6.4\bin\.NETFramework\System.Spatial.xml' contains invalid characters.
当我 运行 MsBuild 有相同的争论时,我没有在本地获取它们,我什至可以 运行 私人构建代理上的 MSBuild 也很好。
我有其他项目很好地使用了 OctoPack,并且使用了这些包。我将非常仔细地仔细检查它们,因为其他的工作正常。
问题已通过将受影响的软件包从 5.6.4 升级到 5.7.0(当前最新版本)得到解决。
我花了好几个小时试图解决这个问题。我想我可以通过发布我会问的问题和答案来节省其他人的时间。
还要确保你的主要目标的 App.config/web.config 也有绑定重定向:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
</dependentAssembly>
您可能在解决方案的 service/utility 项目中有这些,但如果它们不存在于您的 "deployable" 目标的主配置文件中,它们将被忽略,您可能仍会选择向上引用
C:\Program Files (x86)\Microsoft WCF Data Services.6.4
DLL 的版本,而不是您想要的 NuGet 打包版本,来自您的 "packages" 文件夹。