BIML 永远不会正确生成 Package ProtectionLevel
BIML never generate Package ProtectionLevel properly
我已将我的项目级别保护级别设置为 EncryptSensitiveWithPassword,并且在我使用 BIML 生成的所有包中,我的代码如下
<Package Name ="MyPackage" ProtectionLevel="EncryptSensitiveWithPassword" PackagePassword="mypass">
出于某种原因,每次使用 BIDS Helper 生成包后,我都必须手动将 ProtectionLevel 设置为 EncryptSensitiveWithPassword。这是一项痛苦的工作。我不知道为什么不应该工作。有什么线索吗?
我正在使用从 Codeplex 下载的 1.7.0 版 BIDSHelper 和 SQL 服务器数据工具 2012 版(您可能已经知道令人困惑的部分是 VS 版本是 2010)
更新:
下面是 iamdave 推荐的新的 biml 结构,它不会在 ProjectSubPath 中生成任何输出,并且 ExceptionDataMigrator 包仍在生成默认包保护
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Projects>
<PackageProject ProjectSubpath="bimlOutput"
Name = "Solution/Project"
ProtectionLevel = "EncryptSensitiveWithPassword"
ProjectPassword = "password"
>
<Parameters>
<Parameter Name="sTestParam" DataType="String">This is project parameter</Parameter>
</Parameters>
<Packages>
<Package PackageName="ExceptionDataMigrator">
</Package>
</Packages>
</PackageProject>
</Projects>
<Connections>
<Connection Name="Staging" CreateInProject="true" ConnectionString="Data Source=b.database.windows.net;User ID=h;Initial Catalog=Migration_Staging;Password=z;Provider=SQLNCLI11.1;Auto Translate=False;" RetainSameConnection="true" />
<Connection Name="Reporting" CreateInProject="true" ConnectionString="Data Source=Dev2;Initial Catalog=ng;Provider=SQLNCLI11;Integrated Security=SSPI;Auto Translate=false;" RetainSameConnection="true" />
<Connection Name="SalesForceDB" CreateInProject="true" ConnectionString="Data Source=db;Initial Catalog=SalesForce;Provider=SQLNCLI11;Integrated Security=SSPI;Auto Translate=false;" />
</Connections>
<Packages>
<Package Name="ExceptionDataMigrator" ConstraintMode="Linear" ProtectionLevel="EncryptSensitiveWithPassword" PackagePassword="password">
<Parameters>
您是在与 BIML 文件相同的 VS 项目中还是作为一个全新的解决方案创建包?如果我没记错的话,我遇到了类似的问题并通过在 <Projects>
的 <PackageProject>
节点中指定 ProjectSubPath
来解决它,因为在我的 BIML 项目中创建的包继承了保护级别BIML 项目:
<Projects>
<PackageProject
ProjectSubPath = "Folder to save new solution"
Name = "Solution/Project Name"
ProtectionLevel = "EncryptSensitiveWithPassword"
ProjectPassword = "Password"
>
<Parameters>
<!-- Add Parameters here -->
</Parameters>
<Packages>
<Package PackageName = "Package 1" />
</Packages>
</PackageProject>
</Projects>
非常小心 你指出 ProjectSubPath
因为它会完全删除该地址已经存在的任何文件夹,无论它包含什么,然后重新创建它并在其中创建您的新解决方案。
我已将我的项目级别保护级别设置为 EncryptSensitiveWithPassword,并且在我使用 BIML 生成的所有包中,我的代码如下
<Package Name ="MyPackage" ProtectionLevel="EncryptSensitiveWithPassword" PackagePassword="mypass">
出于某种原因,每次使用 BIDS Helper 生成包后,我都必须手动将 ProtectionLevel 设置为 EncryptSensitiveWithPassword。这是一项痛苦的工作。我不知道为什么不应该工作。有什么线索吗?
我正在使用从 Codeplex 下载的 1.7.0 版 BIDSHelper 和 SQL 服务器数据工具 2012 版(您可能已经知道令人困惑的部分是 VS 版本是 2010)
更新: 下面是 iamdave 推荐的新的 biml 结构,它不会在 ProjectSubPath 中生成任何输出,并且 ExceptionDataMigrator 包仍在生成默认包保护
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Projects>
<PackageProject ProjectSubpath="bimlOutput"
Name = "Solution/Project"
ProtectionLevel = "EncryptSensitiveWithPassword"
ProjectPassword = "password"
>
<Parameters>
<Parameter Name="sTestParam" DataType="String">This is project parameter</Parameter>
</Parameters>
<Packages>
<Package PackageName="ExceptionDataMigrator">
</Package>
</Packages>
</PackageProject>
</Projects>
<Connections>
<Connection Name="Staging" CreateInProject="true" ConnectionString="Data Source=b.database.windows.net;User ID=h;Initial Catalog=Migration_Staging;Password=z;Provider=SQLNCLI11.1;Auto Translate=False;" RetainSameConnection="true" />
<Connection Name="Reporting" CreateInProject="true" ConnectionString="Data Source=Dev2;Initial Catalog=ng;Provider=SQLNCLI11;Integrated Security=SSPI;Auto Translate=false;" RetainSameConnection="true" />
<Connection Name="SalesForceDB" CreateInProject="true" ConnectionString="Data Source=db;Initial Catalog=SalesForce;Provider=SQLNCLI11;Integrated Security=SSPI;Auto Translate=false;" />
</Connections>
<Packages>
<Package Name="ExceptionDataMigrator" ConstraintMode="Linear" ProtectionLevel="EncryptSensitiveWithPassword" PackagePassword="password">
<Parameters>
您是在与 BIML 文件相同的 VS 项目中还是作为一个全新的解决方案创建包?如果我没记错的话,我遇到了类似的问题并通过在 <Projects>
的 <PackageProject>
节点中指定 ProjectSubPath
来解决它,因为在我的 BIML 项目中创建的包继承了保护级别BIML 项目:
<Projects>
<PackageProject
ProjectSubPath = "Folder to save new solution"
Name = "Solution/Project Name"
ProtectionLevel = "EncryptSensitiveWithPassword"
ProjectPassword = "Password"
>
<Parameters>
<!-- Add Parameters here -->
</Parameters>
<Packages>
<Package PackageName = "Package 1" />
</Packages>
</PackageProject>
</Projects>
非常小心 你指出 ProjectSubPath
因为它会完全删除该地址已经存在的任何文件夹,无论它包含什么,然后重新创建它并在其中创建您的新解决方案。