C# Application - Unable to add pre-requesites files - c#

I have developed a small database application for learning and I wanted to deploy it to run on other machine.
I try to publish application and selected Download prerequisites from the same location as my application. It gives me an error that Prerequisite file not found and it asks me to download those files
Now I have downloaded the files and I wasn't sure where to place those files and googled it.
I found that I need to add under this path:
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\DotNetFX45
Now, I have 4 different directories under this path:
C:\Program Files (x86)\Microsoft SDKs\Windows
Directories:
v7.0A
v8.1
v8.1A
v10.0A
BTW, the Bootstrapper directory is only available in v7.0A folder. So, I add NDP452-KB2901907-x86-x64-AllOS-ENU.exe under this path:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX452
But it still gives me same error. Then I tried to add Bootstrapper directory under other versions but same error.
Questions:
What is the correct path and why it's unable to load that file?
I need to add few other prerequisites as well so how do I know the right directories for them? (sqlncli.msi, sqllocaldb.msi, sqlcmdlnutils.msi)
And it is asking for x64 and x86 setup files separately so how do I handle that?
Environment Detail:
Window 8 Single Language
Visual Studio 2015 (Enterprise)
SQL Server 2017

Instead of copying to bootstrapper under Microsoft SDKs folder,You need to copy the downloaded prerequisites to packages folder Bootstrapper under Microsoft Visual Studio 14.0. example
32-bit system:
C:\Program Files\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages
64-bit system:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages
Check your system for relevant path:
More details at following link:
https://msdn.microsoft.com/en-us/library/hh873130.aspx
For all of other prerequisite, make sure to copy it to \packages\{prerequisite} folder. And if it asks for x64 and x86 files separately then create sub-directory like:
Bootstrapper\Packages\SqlLocalDB2012\x64 (for 64-bit)
Bootstrapper\Packages\SqlLocalDB2012\x86 (for 32-bit)

Related

How to troubleshoot custom code analysis assembly for SSDT

I am trying to implement a custom code analysis assembly for SSDT. I am following the guide at Walkthrough Authoring a Custom Static Code Analysis Rule Assembly for SQL Server.
After I copy the resulting .dll and .pdb files to the designated directory, the project doesn't load, and I get this error message:
One or more projects in the solution were not loaded correctly. Please see the Output Window for details.
And there is this message in the Output window:
Exception has been thrown by the target of an invocation.
I don't know how to troubleshoot this.
I am using Visual Studio 2017 and an SSDT project that targets SQL Server 2016. So this is the directory I used as the target for the .dll and .pdb files:
\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\150\Extensions
This is the target directory given in the link:
\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions
I've tried only copying the .dll file. I've tried restarting all running instances of Visual Studio as well as restarting the computer. I've tried running Visual Studio with the /log switch and looking for details in the ActivityLog.xml file.

WIndows 10 MIDL.exe

I need to convert some IDL files to C# class/Interfaces.
I am not able to get the MIDL.exe compiler.
I am running windows 10, and I have few Visual studio versions installed on my machine, I also download and install the Microsoft SDK but I am not able to find the MIDL.exe binary any where.
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
or
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
No clue where this binary is...
Open a Developer Command Prompt and type where midl.
On my computer it's here:
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86
Install from here: Windows 10 SDK

I moved the directory of visual studio to a different drive, now I cannot compile

My C: drive is strictly for windows (a 64GB SSD), and recently learned that it was nearly full. I changed my program files directory to D:/ProgramFiles and all the contents of my old program files to the new directories. Now, trying to compile a program in Visual Studio 2017 Community will give me an error:
The reference assemblies for framework ".NETFramework,Version=v4.5.2" were not found.
How can I tell visual studio where I moved my files to?
EDIT: I have already installed Visual Studio itself (devenv.exe) under "Visual Studio 2K17", but I've moved the assemblies (NOT visual studio) to the D drive. If i choose to reinstall, it will still put files on my C drive.
How can I tell visual studio where I moved my files to?
By uninstalling Visual Studio and re-install it back and while doing so choose the installation path to D:\ drive. simply moving the installation directory to different root drive won't make it since there are registry settings which will be still pointing to C:\ drive installation folder
You can make a Junction folder, I had the same space issue, and I moved all the files to another drive. in case you remember which folders you moved you can still get it working.
Let's say I moved "C:\Program Files (x86)\Microsoft ASP.NET" to "D:\Program Files (x86)\Microsoft ASP.NET"
all I do is in the command prompt(you might need to execute CMD with admin priviledges):
mklink /j "C:\Program Files (x86)\Microsoft ASP.NET" "D:\Program Files (x86)\Microsoft ASP.NET"
so mklink /j Dest_Folder SourceFolder
Dest_Folder: where you want your directory junction to appear
SourceFolder: where you moved your folder.
After doing a repair of visual studio (took roughly 15-20 minutes on a 3MBPS connection), everything was working fine again and everything installed to the new program files directory.

VS2017 command line build (missing "%VS150COMNTOOLS%VSVars32.bat")

I have installed VS2017 and call
call "%VS120COMNTOOLS%VSVars32.bat"
from the command line but all I get is
'"%VS150COMNTOOLS%VSVars32.bat"' is not recognized as an internal or external command, operable program or batch file.
If I run "set" from the command line I can see VS120COMNTOOLS (for VS2013) & VS140COMNTOOLS (for VS2015) but there is no VS150COMNTOOLS. How can I build from the command line?
I submitted this as a tech support issue to Microsoft who accepted it as a bug in the install ("there is no VSVars32.bat in the C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools directory.").
However, there is a work-around:
From MS:
At least, since there is a VsDevCmd.bat, there is a Visual Studio 2017 Developer Command Prompt, which also sets, modifies environment variables (Framework40Verion, FrameworkDir, FrameworkDIR64, FrameworkVersion, FrameworkVersion64, INCLUDE, IPCPATH, PATH, VCINSTALLDIR, VCToolsInstallDir, ...)
C:\Program Files (x86)\Microsoft Visual Studio\2017\EDITION\Common7\Tools\VsDevCmd.bat
Run C:\Program Files (x86)\Microsoft Visual Studio\2017\EDITION\Common7\Tools\VsDevCmd.bat where EDITION is the type of VS2017 install, i.e. C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat for the Enterprise install. This sets up the needed environment variables and batch builds will work.
Hope this helps anyone struggling with the same issue.
VS2017 has reworked its directory structure and filenames. The file is no longer titled "VsVars32.bat", you should look for the file 'vcvars.bat', which can be located in ..\Program Files (x86)\Microsoft Visual Studio\2017\EDITION\Common7\Tools\vsdevcmd\ext\vcvars.bat (using Adam's syntax, replace EDITION with the version of Visual Studio you use).
For simplicity, you can use %VSAPPIDDIR% in your call to point to the IDE folder where devenv.exe is located, and go back one folder to define your path to the batch file. For example:
call "%VSAPPIDDIR%..\Tools\vsdevcmd\ext\vcvars.bat"
If its any help to anyone...
If you modify your Visual Studio 2017 installation to install the component:
"VC++ 2015.3 v140 toolset for Desktop (x86,x64)"
then the 'VSVars32.bat' file which is missing, will be installed (as its a component of VC++ 2015, but not VC++ 2017).

How to set signtool.exe location in visual studio 2015 community

I've been stuck in this for a couple of hours.
I want to deploy my C# application using a Visual Studio ("Windows") Installer instead of a Click Once Installer.
For doing that, I had to install an extension called "Visual Studio 2015 Installer Projects", which I did.
But once I finally created the setup project for my solution, when I try to build it, I get the following error:
"Sign tool was not found at path: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\signtool.exe"
I checked that in fact, signtool.exe isn't there. But after a little research I found that signtool.exe is located under:
C:\Program Files (x86)\Windows Kits\10\bin\x64 and
C:\Program Files (x86)\Windows Kits\10\bin\x86
No here's is my question: how do I tell Visual Studio where the signtool.exe is located? is it a global, visual studio configuration or a project specific configuration?
Thanks in advance
You can use environment variable WindowsSdkDir. For example in command line:
"%WindowsSdkDir%bin\x64\signtool.exe"
or within msbuild script:
$(WindowsSdkDir)bin\x64\signtool.exe
instead of x64 you can use x86 if you use 32-bit windows version
I believe, will be much better to add
C:\Program Files (x86)\Windows Kits\10\bin\x86
path to the global system path (via ControlPanel->System->Advanced system settings->Environment variables...

Categories