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).
Related
I used to be able to run ildasm in the Developer Command Prompt for Visual Studio 2017. With Visual Studio 2019, ildasm is no longer available:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>ildasm
'ildasm' is not recognized as an internal or external command,
operable program or batch file.
Was it replaced with something else or is my VS 2019 installation incomplete?
ildasm.exe is installed with the Windows SDK tools, located in C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe or somewhere similar depending on the version.
You can install the SDK from this website or by selecting it in the optional components during the installation of VS2019.
Try to use it directly from Developer Command Prompt 2019/2017
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.
I was looking to enable TFS tracing in my Visual Studio 2017. All the links I have found is for older version of Visial Studio where you go to the \common7\IDE directory to open up the devenv.exe.config file. For some reason, I do not have this file in my 2017 version.
Does Visual Studio 2017 still utilize the devenev.exe.config? If so, does it reside in a different directory from previous versions?
The devenev.exe is also located under \common7\IDE directory. However, VS2017 installed path is not the same as previous version. The devenv.exe is located at:
For VS2017
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe
For VS2015
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
If you want to find the install location of devenv in a script, since there is no %VS150COMNTOOLS% for Visual Studio 2017, you could use vswhere.exe or powershell to find your Visual Studio instances. Detail steps please refer this question: reliable way to find the location devenv.exe of Visual Studio 2017
I ended up going to the VS 2017 environment in a command window in administrator mode. I then ran 'devenv.exe /log c:\vs_logs\log.txt'. That allowed me to create logs of what VS was doing
I have an solution with one project. Able to build it via VS GUI.
I want to build it via command prompt. But getting errors:
Command used:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" "C:\Users\xxx\Desktop\WebApplication1\WebApplication1.sln" /t:build
error:
error MSB4019: The imported
project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets"
was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.
How to resolve this. Please suggest.
This can happen when Visual Studio is not installed on the machine on which you're attempting to build the project (e.g. a build agent).
Verify VS is installed, or if this isn't an option you could run the following command in the package manager console:
Install-Package MSBuild.Microsoft.VisualStudio.Web.targets
This package will update the .csproj file of your project to use the VS version of the targets if they exist, otherwise a local version contained in the packages folder.
The path of MSBuild should be "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" instead of "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe".
As per Visual Studio Blog: MSBuild is now part of Visual Studio!:
Starting with Visual Studio 2013, the 2013 version of MSBuild will ship as a part of Visual Studio instead of the .NET Framework. This transition allows us to more rapidly evolve MSBuild.
So when you build project via command prompt in Visual Studio 2015, the path of MSBuild should be "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe".
Hope this can help you.
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...