How to generate ISPAC files from command line without installing any tools - sql-server-data-tools

I have a request to automate the process of generating ISPAC files as part of our automated build system (currently this is being done manually from a developer machine). The way the build system is configured all the tools reside in source control and nothing is installed on the build machines. When a build is started a script configures the environment to use the paths within the source control repository for running the tools. On my dev machine I have SSDT installed, but I need to avoid having to install anything. I've run across this article which discusses how to generate ISPAC files from the command line via MSBuild, and references a project on CodePlex, but the project still requires SSDT be installed to work. I've reached out to the author of the article to see if he had any suggestions, but thought I'd try here as well since it's such a large audience.
After having built the tool from the project and determined the dependencies of the tool and pulling the appropriate DLLs into the same folder as the tool I get the following error when I run:
An Integration Services class cannot be found. Make sure that Integration Services is correctly installed on the computer that is running the application. Also, make sure that the 64-bit version of Integration Services is installed if you are running a 64-bit application. [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.Dts.Runtime.ProjectParameter.Init(String parameterName, ParameterCollection collection) [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.Dts.Runtime.ProjectParameter..ctor(String parameterName, TypeCode dataType, ParameterCollection collection) [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.Dts.Runtime.ProjectParameters.Add(String parameterName, TypeCode dataType) [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
at Microsoft.SqlServer.IntegrationServices.Build.DeploymentFileCompilerTask.Execute() in D:\XXX\Tools\build\Tools\src\SSISMSBuild_2012\DeploymentFileCompilerTask.cs:line 182 [D:\XXX\YYY\Src\Rpt\SSIS_msbuild.proj]
Following the stack trace it looks like DTS.dll is what's hanging me up, even though it's in the same folder as the tool. Somebody mentioned to me to look into registration-free COM interop as a possible solution. I've generated a manifest file for DTS.dll, as well as one for the tool, but still no difference. I don't know if this is the wrong path to accomplish what I need or if I'm just doing it wrong. Any help would be greatly appreciated.

Related

How to create an installer with self updates on windows server for an dotnet core console/service application

I have an application, an aspnet core website 3.0 that is currently running in a console application.
A client is interested in installing it on their internal network.
I am thinking that its best to convert it to a background service and windows can ensure that its running. Following: https://dotnetcoretutorials.com/2019/12/07/creating-windows-services-in-net-core-part-3-the-net-core-worker-way/
What are my options to create an installer for this? Is there anything new out of the box with dotnet core that makes this easy, or should I just go with older "best practice" aka google it to create an installer? Or is it best to just use that sc create TestService BinPath=C:\full\path\to\publish\dir\WindowsServiceExample.exe command to install it.
Author of the blog post here. It really depends on who the target audience is. If it's someone trying to deploy it on an internal network, IMO the SC commands are fine because either
A. It's an IT person installing it anyway so they won't have fear of double clicking a .bat file.
B. The IT team uses some sort of GPO/scripting to keep all machines in line in which case they can surely run a one line command to install it anyway.
An installer is only useful if the end user is non-IT, a customer etc.

Configuring CMake to build with Xcode

I am involved in development of a large cross platform project that build for Windows, Linux, and Mac OS X. The build for the software is configured with CMake.
The CMake scripts have been designed to configure successfully for Visual Studio on Windows, and Makefiles are currently used for building on Linux and Mac OS X.
Pretty much all of the development for the project so far has been done with people working on Windows, and a little bit of work on Linux. I am interested in developing for the project using Xcode 4.6 on a Macintosh running Mac OS X 10.7, and I have encountering problems as the CMake files do not seem to configure properly for that development environment.
For non-windows platforms many custom commands have been written to try to configure things such as copying needed files or setting environments that are needed for certain operations such as running unit tests during the build process.
It seems that because Xcode is an integrated development environment simliar to Visual Studio is has this concept of a build configuration, and when software gets build output files in up in a directory path that includes that configuration concept (i.e. many build files end up in a path that ends with folder named something like Debug, Release, etc.)
CMake is supposed to have support for dealing with this build configuration concept and the mechanism utilized work well for Visual Studio. That do no seem to work for Xcode. For example our build engineers have design CMake scripts so that for Windows, many path and whatnot are configured using the CMAKE_CFG_INTDIR value which helps to qualify the build configuration.
The use of CMAKE_CFG_INTDIR is not working for Xcode as the script for Macintosh were written with Makefiles in mind which don't really have the build configuration concept. The use of CMAKE_CFG_INTDIR within custom commands used to configure things fails on the Macintosh as the value resolves to $(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME). This values are not define when the custom commands are run, so values are not set properly and build operations fail.
It is unclear what is needed so that the system can successfully configure for Xcode. Searching on the Internet so far has not yielded insight into what should be used to make sure that build configuration can be successful. What resources are available that would help in figuring out how to configure this project to build with Xcode?
If you're talking about custom commands set using add_custom_command, then you should prefer "generator expressions" to avoid issues regarding per-configuration build directories. From the docs for add_custom_command:
Arguments to COMMAND may use "generator expressions" with the syntax "$<...>". Generator expressions are evaluated during build system generation to produce information specific to each build configuration.
For example, the build directory for a target called "MyExe" could be referred to as $<TARGET_FILE_DIR:MyExe>
Generator expressions are available in a few CMake commands, not just add_custom_command.
If you have more specific problems, it's maybe worth asking further question(s) with the relevant details.

SQLite deployment fails unable to locate system.data.sqlite.dll vb.net

Hoping that I do this corectly.
I am having the above issue. My development machine is win7 64. Im developing x86 application,(x86 set in compile options). I have downloaded sqlite-netFx40-setup-bundle-x86-2010-1.0.81.0 as my app will be on .net4. I have referenced the above dll, set it to copy local. Can confirm that its in the deployed dirrectory. Tests OK on development machine both as a debug and a fully instaled app. When I put the app on a separate win 7 64bit it wount run due to the Dll. It installs ok into ProgramFiles(x86) and runs untill the database is required. The dll is in the instaled dirrectory when instaled on the other PC. (fresh win instal).
I am using InstalShield and it is also telling me about an error ' -6248: Could not find dependent file system.data.sqlite.dll, or one of its dependencies of component' but it compiles OK.
Im stearing at the Dll in the program , in the references, the intelisence picksup the SQLite name and all the code is right. I have referenced by browse and then finding the dll.
What on earth could I be doing wrong ?
This has had so many views that I decided to answer this so as to help others.
The problem isnt a big deal once you know what it is, despite the error message that sends you almost in the wrong dirrection. The problem isnt the DLL, its one of its dependancies. Basicaly you have to install C++ distributable file on the client machine , even if you are using VB.net. I cant take credit for the find, it comes from here http://justanothersoftwareengineer.blogspot.com.au/2011/08/how-to-make-systemdatasqlitedll-work-on.html.

Compiling Flex Projects with Remote Ant

I'm having problems compiling applications with remote ant, something similar to this. However the flex compiler seems to have problems with this. When I run the same script on my local compiles everything without any problems but when I try the remote ant it fails without giving more information.
Things to look for on the remote machine:
The paths in the build file need to be valid (I'm pretty sure the script file you use to build the project on your computer, will not be good on the remote one because of a possible difference in paths)
You need the Flex SDK installed
You need Java JDK installed
You might also need some environment variables set correctly (like JAVA_HOME)
ANT binaries on the remote machine (but I assume you already have this, probably coming with the system you're using)
The sources to be compiled, obviously (I assume you already have these too, probably gotten by your system from a repository)
Also I find it hard to believe it would fail without any error. There should be at least a log file somewhere to give you an idea of what went wrong.

When installing an ODBC driver, Windows Installer keeps putting it in SystemFolder

I'm working on an installer that, among other things, installs a web server.
As part of the setup, I'm setting up an ODBC driver and data source. I'm
trying to put a bunch of utility files, including the third party ODBC driver DLL,
into a certain folder, but when I run the installer, it insists on changing
that directory to the SystemFolder directory. Why is it doing this, and is
there any way that I can make it install the files where I want them to go?
Strangely enough, it was actually working correctly up until I added a bunch
more files to that particular folder. In case it's relevant, the files that I'm having trouble with are in a merge module.
(I'm temporarily getting around the problems that this is causing by
installing the DLL to the SystemFolder, but I'd much rather avoid DLL hell by
having it installed where I want it to go, not where Windows Installer seems
to think it should go.)
I should also point out that I'm using Wise Installation Studio 7.0 as my development environment.
It would seem that it's not Windows Installer that insists on the ODBC Driver DLL being installed in the SystemFolder directory, but Wise. We found this solution for getting rid of an Error 1918 problem that we were also seeing, which says to take the driver entries out of the ODBCDriver table, and stick them in as Registry entries instead. After implementing that fix, we tried moving our DLL to where we really want it to be installed, and the installer was happy with that.

Resources