Vsixmanifest supporting Visual Studio 2012, 2013, 2015 - visual-studio

For a project I'm trying to create a set of development templates that hopefully can work on Visual Studio 2012, 2013 and 2015.
Google helped me a little bit and suggested to read this;
vsixmanifest for all: VS 2010, 2012 and 2013
This implies to me that I should try to use Version 1.0.0 schema instead of 2.0.0 is this assumption correct ?
Other questions, do I need to specify all the product Editions of a version or is a single on enough ?
And does anyone have an example how to add 2-3 itemTemplates ?
This is what I currently have...
<?xml version="1.0" encoding="utf-8"?>
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
<Identifier Id="a452ff57-dc92-4db0-9ae7-9d45eb1cd405">
<Name>My DevelopmentTemplates</Name>
<Author>myName</Author>
<Version>1.0</Version>
<Description xml:space="preserve">Some description for my DevelopmentTemplates</Description>
<Locale>1033</Locale>
<SupportedProducts>
<VisualStudio Version="12.0">
*<!-- are all version required to be specified, or is lowerst enough for all? -->*
<Edition>Community</Edition>
<Edition>Pro</Edition>
<Edition>Premium</Edition>
<Edition>Ultimate</Edition>
<Edition>Enterprise</Edition>
</VisualStudio>
<VisualStudio Version="13.0">
*<!-- are all version required to be specified, or is lowerst enough for all? -->*
<Edition>Community</Edition>
<Edition>Pro</Edition>
<Edition>Premium</Edition>
<Edition>Ultimate</Edition>
<Edition>Enterprise</Edition>
</VisualStudio>
<VisualStudio Version="15.0">
*<!-- are all version required to be specified, or is lowerst enough for all? -->*
<Edition>Community</Edition>
<Edition>Pro</Edition>
<Edition>Premium</Edition>
<Edition>Ultimate</Edition>
<Edition>Enterprise</Edition>
</VisualStudio>
</SupportedProducts>
<SupportedFrameworkRuntimeEdition MinVersion="4.0" />
</Identifier>
<content>
*<!-- how to add multiple ITemplates -->*
</content>
</Vsix>

Version 1.0 schema is required to support VS 2010. As you support VS 2012+, you can use version 2.0 schema.
Lowest edition (Pro) is enough to support all higher editions.
You should specify Visual Studio versions 11.0, 12.00, 14.0 to support VS 2012, 2013, 2015.

Related

There is an error in XML document (2, 2): Visual Studio, SSRS Project file errors (VS2015-VS2017)

I have a solution file that was developed with VS2015, and it has about 20 project files. When we opened the file with VS2017 a prompt appeared: "The version of the report server project is not supported and the project must be upgraded". We chose to upgrade the project and commit the changes, and the solution/projects are now working in VS2017.
When I use VS2015 and use version control to Update Solution to Latest Version, the file are retrieved but the project files do not load correctly; "One or more projects in the solution were not loaded correctly. Please see Output Window for more detials". The Output when has a message for every project that says: "There is an error in XML document (2, 2).". I tried to right-click the project and Reload Project, but it gives the same XML document (2,2) error message. When I use version control to Update Solution to Specific Version (and choose the prior working version), the project files still say "(unavailable)" but when I choose Reload Project the project then loads correctly.
I would like to know how to fix the files in VS2015. And then ultimately I would like to make this work so that both VS2017 and VS2015 can make changes to the solution files (Projects .RPTPROJ, Datasource .RDS, Report .RDL, and so forth).
Full Error Message
C:\Users\myUser\Documents\Visual Studio
2015\Projects\SSRS\Project_ssrs2016\Transportation\Transportation.rptproj
: error : There is an error in XML document (2, 2).
Visual Studio Version Info
(edited)
I tried using VS 2017 about 1 year ago. It was working fine for about a week, and then one day the program would suddenly not launch giving me the error message: "Package management initialization failed: Access Denied." According to to people on SO, the is a very common error with VS 2017, but it has been likely been fixed in newer versions: (Package management initialization failed: Access Denied Error when opening Visual Studio 2017)
Some of my colleagues use VS2017, but they don't use it for too many things.
--Mine
Microsoft Visual Studio Community 2015
Version 14.0.25431.01 Update 3
---------------------------------------------
--Collegue 1 (did the SSRS Project upgrade)
Microsoft Visual Studio Professional 2017
Version 15.5.6
--Colleage 2 (also uses VS2015, but in the future will probably start using VS2017 more frequently)
Microsoft Visual Studio Professional 2017
Version 15.7.1
|--VS Extension-- || VS2015 || VS2015 updated || VS2017 (upgraded SSRS) |
| Data Tools || 14.0.61021.0 || 14.0.61707.300 || 15.1.61710.120 |
| Analysis Services || 13.0.1701.8 || 14.0.806.134 || 14.0.1016.244 |
| Integration Services || 13.0.1601.5 || 14.0.800.90 || 14.0.3002.92 |
| Reporting Services || 13.0.1701.8 || 14.0.806.134 || 14.0.1016.233 |
Transportation.rptproj
VS2015 ORIG
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ToolsVersion="2.0">
<State>$base64$PFNvdXJjZUNvbnRyb2xJbmZvIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRkbDI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yIiB4bWxuczpkZGwyXzI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yLzIiIHhtbG5zOmRkbDEwMF8xMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDA4L2VuZ2luZS8xMDAvMTAwIiB4bWxuczpkZGwyMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAiIHhtbG5zOmRkbDIwMF8yMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAvMjAwIiB4bWxuczpkZGwzMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAiIHhtbG5zOmRkbDMwMF8zMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAvMzAwIiB4bWxuczpkZGw0MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAiIHhtbG5zOmRkbDQwMF80MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAvNDAwIiB4bWxuczpkZGw1MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAiIHhtbG5zOmRkbDUwMF81MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAvNTAwIiB4bWxuczpkd2Q9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRGF0YVdhcmVob3VzZS9EZXNpZ25lci8xLjAiPg0KICA8RW5hYmxlZD5mYWxzZTwvRW5hYmxlZD4NCiAgPFByb2plY3ROYW1lPjwvUHJvamVjdE5hbWU+DQogIDxBdXhQYXRoPjwvQXV4UGF0aD4NCiAgPExvY2FsUGF0aD48L0xvY2FsUGF0aD4NCiAgPFByb3ZpZGVyPjwvUHJvdmlkZXI+DQo8L1NvdXJjZUNvbnRyb2xJbmZvPg==</State>
<DataSources>
<ProjectItem>
<Name>Gmenu.rds</Name>
<FullPath>Gmenu.rds</FullPath>
</ProjectItem>
</DataSources>
<DataSets>
<ProjectItem>
<Name>listWarehouse.rsd</Name>
<FullPath>listWarehouse.rsd</FullPath>
</ProjectItem>
</DataSets>
<Reports>
<ProjectItem>
<Name>Daily Yum Products Daily Traffic Report.rdl</Name>
<FullPath>Daily Yum Products Daily Traffic Report.rdl</FullPath>
</ProjectItem>
<ProjectItem>
<Name>Load Comment Report.rdl</Name>
<FullPath>Load Comment Report.rdl</FullPath>
</ProjectItem>
<ProjectItem>
<Name>Load Planning Worksheet.rdl</Name>
<FullPath>Load Planning Worksheet.rdl</FullPath>
</ProjectItem>
<ProjectItem>
<Name>Loads Under Utilized Exceptions.rdl</Name>
<FullPath>Loads Under Utilized Exceptions.rdl</FullPath>
</ProjectItem>
<ProjectItem>
<Name>Orders for Load Building.rdl</Name>
<FullPath>Orders for Load Building.rdl</FullPath>
</ProjectItem>
<ProjectItem>
<Name>Transportation Order History.rdl</Name>
<FullPath>Transportation Order History.rdl</FullPath>
</ProjectItem>
<ProjectItem>
<Name>Weekly Loads Shipped Detail.rdl</Name>
<FullPath>Weekly Loads Shipped Detail.rdl</FullPath>
</ProjectItem>
<ProjectItem>
<Name>Weekly Yum Products Daily Traffic Report.rdl</Name>
<FullPath>Weekly Yum Products Daily Traffic Report.rdl</FullPath>
</ProjectItem>
</Reports>
<Configurations>
<Configuration>
<Name>Debug</Name>
<Platform>Win32</Platform>
<Options>
<OutputPath>bin\Debug</OutputPath>
<TargetServerVersion>SSRS2016</TargetServerVersion>
<TargetServerURL>http://gcod049/ReportServer</TargetServerURL>
<TargetFolder>/Transportation</TargetFolder>
<TargetDataSourceFolder>/Data Sources/01-DEV</TargetDataSourceFolder>
<TargetDatasetFolder>Datasets</TargetDatasetFolder>
<TargetReportPartFolder>Report Parts</TargetReportPartFolder>
</Options>
</Configuration>
<Configuration>
<Name>DebugLocal</Name>
<Platform>Win32</Platform>
<Options>
<OutputPath>bin\DebugLocal</OutputPath>
<TargetServerVersion>SSRS2016</TargetServerVersion>
<TargetServerURL>http://localhost/reportserver</TargetServerURL>
<TargetFolder>Transportation</TargetFolder>
<TargetDataSourceFolder>Data Sources</TargetDataSourceFolder>
<TargetDatasetFolder>Datasets</TargetDatasetFolder>
<TargetReportPartFolder>Report Parts</TargetReportPartFolder>
</Options>
</Configuration>
<Configuration>
<Name>Release</Name>
<Platform>Win32</Platform>
<Options>
<OutputPath>bin\Release</OutputPath>
<TargetServerVersion>SSRS2016</TargetServerVersion>
<TargetServerURL>http://localhost/reportserver</TargetServerURL>
<TargetFolder>Transportation</TargetFolder>
<TargetDataSourceFolder>Data Sources</TargetDataSourceFolder>
<TargetDatasetFolder>Datasets</TargetDatasetFolder>
<TargetReportPartFolder>Report Parts</TargetReportPartFolder>
</Options>
</Configuration>
</Configurations>
</Project>
VS2017 UPGRADE
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<FullPath>Debug</FullPath>
<OutputPath>bin\Debug</OutputPath>
<ErrorLevel>2</ErrorLevel>
<OverwriteDatasets>False</OverwriteDatasets>
<OverwriteDataSources>False</OverwriteDataSources>
<TargetServerVersion>SSRS2016</TargetServerVersion>
<Platform>Win32</Platform>
<TargetReportFolder>/Transportation</TargetReportFolder>
<TargetDatasetFolder>Datasets</TargetDatasetFolder>
<TargetDatasourceFolder>/Data Sources/01-DEV</TargetDatasourceFolder>
<TargetReportPartFolder>Report Parts</TargetReportPartFolder>
<TargetServerURL>http://gcod049/ReportServer</TargetServerURL>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'DebugLocal' ">
<FullPath>DebugLocal</FullPath>
<OutputPath>bin\DebugLocal</OutputPath>
<ErrorLevel>2</ErrorLevel>
<OverwriteDatasets>False</OverwriteDatasets>
<OverwriteDataSources>False</OverwriteDataSources>
<TargetServerVersion>SSRS2016</TargetServerVersion>
<Platform>Win32</Platform>
<TargetReportFolder>Transportation</TargetReportFolder>
<TargetDatasetFolder>Datasets</TargetDatasetFolder>
<TargetDatasourceFolder>Data Sources</TargetDatasourceFolder>
<TargetReportPartFolder>Report Parts</TargetReportPartFolder>
<TargetServerURL>http://localhost/reportserver</TargetServerURL>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<FullPath>Release</FullPath>
<OutputPath>bin\Release</OutputPath>
<ErrorLevel>2</ErrorLevel>
<OverwriteDatasets>False</OverwriteDatasets>
<OverwriteDataSources>False</OverwriteDataSources>
<TargetServerVersion>SSRS2016</TargetServerVersion>
<Platform>Win32</Platform>
<TargetReportFolder>Transportation</TargetReportFolder>
<TargetDatasetFolder>Datasets</TargetDatasetFolder>
<TargetDatasourceFolder>Data Sources</TargetDatasourceFolder>
<TargetReportPartFolder>Report Parts</TargetReportPartFolder>
<TargetServerURL>http://localhost/reportserver</TargetServerURL>
</PropertyGroup>
<PropertyGroup>
<State>$base64$PFNvdXJjZUNvbnRyb2xJbmZvIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRkbDI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yIiB4bWxuczpkZGwyXzI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yLzIiIHhtbG5zOmRkbDEwMF8xMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDA4L2VuZ2luZS8xMDAvMTAwIiB4bWxuczpkZGwyMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAiIHhtbG5zOmRkbDIwMF8yMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAvMjAwIiB4bWxuczpkZGwzMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAiIHhtbG5zOmRkbDMwMF8zMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAvMzAwIiB4bWxuczpkZGw0MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAiIHhtbG5zOmRkbDQwMF80MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAvNDAwIiB4bWxuczpkZGw1MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAiIHhtbG5zOmRkbDUwMF81MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAvNTAwIiB4bWxuczpkd2Q9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRGF0YVdhcmVob3VzZS9EZXNpZ25lci8xLjAiPg0KICA8RW5hYmxlZD5mYWxzZTwvRW5hYmxlZD4NCiAgPFByb2plY3ROYW1lPjwvUHJvamVjdE5hbWU+DQogIDxBdXhQYXRoPjwvQXV4UGF0aD4NCiAgPExvY2FsUGF0aD48L0xvY2FsUGF0aD4NCiAgPFByb3ZpZGVyPjwvUHJvdmlkZXI+DQo8L1NvdXJjZUNvbnRyb2xJbmZvPg==</State>
<DataSources>#(DataSource)</DataSources>
<DataSets>#(DataSet)</DataSets>
<Reports>#(Report)</Reports>
</PropertyGroup>
<ItemGroup>
<DataSet Include="listWarehouse.rsd" />
</ItemGroup>
<ItemGroup>
<DataSource Include="Gmenu.rds" />
</ItemGroup>
<ItemGroup>
<Report Include="Daily Yum Products Daily Traffic Report.rdl" />
<Report Include="Load Comment Report.rdl" />
<Report Include="Load Planning Worksheet.rdl" />
<Report Include="Loads Under Utilized Exceptions.rdl" />
<Report Include="Orders for Load Building.rdl" />
<Report Include="Transportation Order History.rdl" />
<Report Include="Weekly Loads Shipped Detail.rdl" />
<Report Include="Weekly Yum Products Daily Traffic Report.rdl" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Reporting Services\Microsoft.ReportingServices.MSBuilder.targets" />
</Project>
I resolved the problem by deleting the MyProjectName.rptproj.user file
Try to delete *.rptproj.rsuser file and reload project. It works for Visual Studio 2019 as well.
Or just create new project and add exsting items (reports, data sources) inside it.
The problem appears to be in the .suo and .csproj.user files that are left over from previous versions of Visual Studio. Delete these files and then the SSRS project should load successfully in VS2017.
Answers
I would like to know how to fix the files in VS2015:
If you can retrieve the older 2015 .RPTPROJ project files (from source control) and overwrite the new 2017 project files, then the rest of the files will work. For example-- AnkhSvn undo/revert a commit.
_
Ultimately, I would like to make this work so that both
VS2017 and VS2015 can make changes to the solution files (Projects
.RPTPROJ, Datasource .RDS, Report .RDL, and so forth):
Team development in SSRS with VS2015 and VS2017 is not possible (best as I can tell), due to project file XLM structure differences seen in my question post. We chose to revert to the VS2015 format, and get our team on the 2015 version of VS and SSDT. I have experienced some serious bugs with VS2017 (Package management initialization failed: Access Denied Error when opening Visual Studio 2017), so we are going to put that upgrade off for now.
It is now possible to open such projects with Visual Studio 2019 using the following extension:
Microsoft Reporting Services Projects
However, I met the same error as mentioned in the original post, which prevented loading the projects the first time around. The solution was to remove the whole project locally and re-fetch it from the source control - apparently some local temporary files are troublesome.
Just uninstall a visual new or recent visual studio update, A NEW .net update or the new version of vs. That is what creates that problem.

Where can I find a list of Visual Studio 2015 Extension Installation Targets?

I have an Extension to print Visual Studio source code in color. I have set the in the Manifests file as:
<Installation InstalledByMsi="false">
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="14.0" />
<InstallationTarget Id="Microsoft.VisualStudio.Ultimate" Version="14.0" />
</Installation>
How do I amend this list to make sure that my Extension is available for all editions of Visual Studio 2015?

vsixmanifest for all: VS 2010, 2012 and 2013

I'm using VSIX Manifest Designer under VS2013. I've added Microsoft.VisualStudio.Pro product identifier and [10.0,13.0) version range to install targets. Despite that fact, I still don't see my VS2010 Professional as an available installation target:
The source.extension.vsixmanifest file content is shown below:
<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="ae98c9e5-8e14-4c92-b45a-c4fd24a49123" Version="1.0" Language="en-US" Publisher="whosoever" />
<DisplayName>MyExtension</DisplayName>
<Description xml:space="preserve">whosoever</Description>
<MoreInfo>http://www.myextension.com</MoreInfo>
<License>LICENSE.txt</License>
<Icon>icon.png</Icon>
<PreviewImage>screenshot.png</PreviewImage>
</Metadata>
<Installation InstalledByMsi="false">
<InstallationTarget Version="[10.0,13.0)" Id="Microsoft.VisualStudio.Pro" />
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.5" />
<Dependency Id="Microsoft.VisualStudio.MPF.11.0" DisplayName="Visual Studio MPF 11.0" d:Source="Installed" Version="11.0" />
</Dependencies>
<Assets>
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
</Assets>
</PackageManifest>
What should be changed to enable installation of this extension to VS2010, 2012 and 2013?
What you have is the version 2 VSIX manifest, which is not compatible with Visual Studio 2010. Later Visual Studio versions respect version 1 of the manifest, so in order to support all 3 Visual Studio versions with a single manifest, you'll have to convert it to v1.0 manually (and make sure NOT to edit it with VS2012+, otherwise it will be converted back to v2.0).
Something like this:
<?xml version="1.0" encoding="utf-8"?>
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
<Identifier Id="ae98c9e5-8e14-4c92-b45a-c4fd24a49123">
<Name>MyExtension</Name>
<Author>whosoever</Author>
<Version>1.0</Version>
<Description xml:space="preserve">Your decription.</Description>
<Locale>1033</Locale>
<SupportedProducts>
<VisualStudio Version="10.0">
<Edition>Pro</Edition>
</VisualStudio>
<VisualStudio Version="11.0">
<Edition>Pro</Edition>
</VisualStudio>
<VisualStudio Version="12.0">
<Edition>Pro</Edition>
</VisualStudio>
</SupportedProducts>
<SupportedFrameworkRuntimeEdition MinVersion="4.0" />
</Identifier>
<Content>
<VsPackage>|%CurrentProject%;PkgdefProjectOutputGroup|</VsPackage>
<MefComponent>|%CurrentProject%|</MefComponent>
</Content>
</Vsix>
You don't have to specify all product editions (called SKUs), Pro is enough, if, say, Ultimate is installed, it will be displayed instead.
It is working pretty good (Thanks a lot to Igal), if the VSIX is developed in VS 2012, and installed in VS 2015. However, the reverse is not working (means developed in VS 2015 and try to install in VS 2012)
After analyzed Activitylog .xml, i found a work around
Could not load file or assembly 'Microsoft.VisualStudio.Shell.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Workaround I did
Remove VisualStudio.Shell.14.0 and Install VisualStudio.Shell.11.0 using Package manager console (Install-Package VSSDK.Shell.11), and installed in VS 2012. Now Working as expected

WiX localization - Desktop/Program menu short cut not replaced in Upgrade

We have recently included localization support for simplified Chiense (zh-cn) in Windows Installer using WIX 3.5. The current version of our product is 1.3.0 and in old version (1.2.0) we do not have any localization support.
We have also changed the product code for 1.3.0 in order to perform major upgrade. And used MSI transform (using Wisubstg.vbs and Wilangid.vbs ) to integrate the localization support into single MSI without using Bootstrapper.
When we test this in Simplified Chinese build in upgrade mode the desktop and prpogram menu short cuts were not replaced but duplicated with Chinese text.
WiX Short cut code is here.
<Shortcut Id="StartServiceShortcut" Icon="StartServiceIcon"
Name="!(loc.STR_StartServiceName)"
Description="!(loc.STR_StartServiceDesc)"
Target="[INSTALLLOCATION]bin\myapp.exe" Arguments="-s"
WorkingDirectory="INSTALLLOCATION"/>
product.Wxl
<String Id="STR_StartServiceName">Start Service</String>
<String Id="STR_StartServiceDesc">Start Services</String>
Installed 1.2 build with Windows 7 English version
Changed the Regional settings to Simplified Chinese and then run the 1.3 Installer.
Seen the Windows Installer Wizard showiing the contents in simplified Chinese.
Installation was successful. But Desktop/Program menus are duplicated with new Chinese text.
Both shorcuts are working with out any issues. But uninstall did not remove both shourt cuts.
Uninstall product does not remove the short cuts. I have also seen that two entries in the Programs/Features list. Also seen there are two different registry entries. The product name and Publisher values are localized all other properties are same in these to Registry keys.
Where am I missing?
Thanks in Advance for any help!
Update:
After changing the upgrade language to '0', I am still getting the same issue. It seems like this new version 1.3 has been installed as totally a new product. Any help!
After changing the upgrade language to '0' I am still getting the same issue. It seems like this new version 1.3 has been installed as totally a new product. Any Help!
<Package InstallerVersion="300" Compressed="yes" InstallPrivileges="elevated" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="$(var.ProductVersion)"
IncludeMinimum="no"
OnlyDetect="yes"
Language="0"
Property="NEWPRODUCTFOUND" />
<UpgradeVersion Minimum="$(var.RTMProductVersion)"
IncludeMinimum="yes"
Maximum="$(var.ProductVersion)"
IncludeMaximum="no"
Language="0"
Property="UPGRADEFOUND" />
</Upgrade>
<Product Id="$(var.ProductID)" Name="!(loc.STR_ProductName)" Language="!loc.STR_Language)" Version="$(var.ProductVersion)" Manufacturer="!(loc.STR_Manufacturer)" UpgradeCode="$(var.UpgradeCode)" >
Finally I got it. Thanks to Alex Shevchuk's Blog From MSI to WiX, Part 8 - Major Upgrade
.
The FindRelatedProducts action runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system.
So, After changing my code to something like below, upgrade was successful. Could be useful to others.
Any comments are welcome!
<Product Id="$(var.ProductID)"
Name="!(loc.STR_ProductName)"
Language="0"
Version="$(var.ProductVersion)"
Manufacturer="!(loc.STR_Manufacturer)"
UpgradeCode="$(var.UpgradeCode)">
<Package InstallerVersion="300" Compressed="yes" InstallPrivileges="elevated" Languages="0" Manufacturer="!(loc.STR_Manufacturer)" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="$(var.ProductVersion)"
IncludeMinimum="no"
OnlyDetect="yes"
Language="0"
Property="NEWPRODUCTFOUND" />
<!-- For UPGRADEFOUND Property, the Language attribute should be set to 1033 as previous version supports only English -->
<UpgradeVersion Minimum="$(var.RTMProductVersion)"
IncludeMinimum="yes"
Maximum="$(var.ProductVersion)"
IncludeMaximum="no"
Language="1033"
Property="UPGRADEFOUND" />
</Upgrade>

Visual Studio Setup & Deployment: Adding Pre Requisits

How can I add into Setup & Deployment project that I want to the client has more components, like:
Microsoft Chart Controls
Microsoft SQL 2008 Express Edition (not 2005)
etc...
alt text http://img55.imageshack.us/img55/2586/200902021225eu9.png
This options are not in VS 2008, and in the window (image above) it only has a link to "Check Microsoft Update for more Redistributable components" but it goes to a page with 2 "bootstrapper packages" (I don't even know what's this)
any ideas on how to add this to the project instead asking the users to install this manually?
Thank you.
Have a look at the article
Authoring a Custom Bootstrapper Package for Visual Studio 2005
If you locate a folder
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages (VS 2005)
or, for VS 2008,
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages
Each folder under 'Packages' is the prerequisite you see in the list, as shown on your screenshot.
So, if you want to add an application called MyPrereq as a prerequisite, you need to make your own folder 'MyPrereq' under 'Packages'. Then you make a product.xml file similar to this
<?xml version="1.0" encoding="utf-8"?>
<Product ProductCode="MyPrereq" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="MyPrereq.exe" />
</PackageFiles>
<InstallChecks>
</InstallChecks>
<Commands Reboot="None">
<Command PackageFile="MyPrereq.exe" EstimatedInstallSeconds="90">
<InstallConditions>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<DefaultExitCode Result="Fail" String="GeneralFailure" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
</Product>
and your package.xml file similar to this
<?xml version="1.0" encoding="utf-8"?>
<Package Name="MyPrereq" Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<Strings>
<String Name="Culture">en</String>
<String Name="DisplayName">MyPrereq</String>
<String Name="GeneralFailure">A fatal error occurred. The installation failed.</String>
</Strings>
</Package>
and place these files and your setup package (MyPrereq.exe) in the folder. Check the existing packages as an example to see where to place files.
If you do everything properly, you will be able to see your MyPrereq option in the list of "Choose which prerequisites to install".

Resources