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 因为它会完全删除该地址已经存在的任何文件夹,无论它包含什么,然后重新创建它并在其中创建您的新解决方案。