2
votes

As I am no longer actively developing using BIML Studio, I am in the process of converting existing projects so they can be compiled in Visual Studio using BIML Express.

As we are slowly removing SSIS, the cost of BIML Studio greatly outweighs the benefit and ultimately, I can still build what I need with BIML Express.

This has largely been a lift and shift operation, except for two issues:

  1. Project Parameters (which has been documented at length)
  2. Dynamically renaming projects and resultant ispac packages

Point 2 is what I want to try and solve.

I have used the existing code from my BIML Studio project, which uses the PackageProject Name and ProjectSubpath values:

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Projects>
        <PackageProject Name="Project FooBarBaz" ProtectionLevel="DontSaveSensitive" ProjectSubpath="FooBarBaz" >
            <Parameters>                
                <Parameter DataType="String" IsRequired="true" Name="SomeParameter">abc</Parameter>
            </Parameters>
            <Packages>
                 <!-- Foreach block getting package names from Rootnode -->
            </Packages>
            <Connections>
                        <!-- some connections in here -->
            </Connections>
        </PackageProject>
    </Projects>
</Biml>

Using the above tags, I expected that the project name would get altered within VS, but it doesn't. The project name remains the same as the value in VS before I generate the SSIS packages.

Does anyone know if this is possible using BIML Express? Or is this similar to the issues we experience with BIML not being able to generate project parameters?

Thanks

1

1 Answers

2
votes

No the name of the project won't change with BimlExpress.

Logically, the only way to get BimlExpress active in visual studio is within the context of an open ssis project. BimlStudio creates a project definition when you compile the Biml, along with packages, project parameters, and project level connection managers.

I assume asking BimlExpress to rename the open existing project would cause VS to fall over. BE doesn't generate a new project and that's be an awkward cycle wherein you'd constantly spawn new vs instances.

Finally, if your BimlStudio solution generated many projects, you might be able to to the same within BimlExpress. You'd need to write your own shim to collect all the artifacts for a given PackageProject and write out to a file. Biggest but of ugliness will be that you need to precalculate your guids and explicitly assign them to connection managers, packages, etc and then stuff that into the project file. Oh and I'm assuming the project protection level is don't save sensitive. I don't want to know how to crack that nut...