.NET 4.0 & VSSDK 2010

reg's Avatar

reg

06 Feb, 2015 11:36 PM

Hi, it's me again.. guy with custom logger for msbuild :)

So., I started to configure AppVeyor for project about what I wrote before.. however,

here I tested sln for VS2013 on test repo where used .NET 4.5

and this all working fine, but this project also a little harder (not trivial I mean) :)

Short again: This project as extension for Visual Studio 2010, 2012, 2013, 2015 requires the VSSDK and used self assembly through msbuild as I said before.
But all references from VSSDK has been used with compatibility on VS2010 - therefore this can be used for build with VSSDK 2010 on all new versions of the Visual Studio! (well, on current day)

And therefore still exists supports of the VS2010... but in any case, currently I can't build for VS2010 with AppVeyor!

for example for VS2013:
* https://ci.appveyor.com/project/3Fs/vssolutionbuildevent/build/1.0.1

nuget restore vsSolutionBuildEvent_2013.sln 
 & 
 "C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe" "vsSolutionBuildEvent_2013.sln" /verbosity:detailed 
 /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" 
 /l:"C:\projects\vssolutionbuildevent\packages\vsSBE.CI.MSBuild.1.0.2\bin\CI.MSBuild.dll" /m /p:Configuration=CI_Debug

is ok, all working... but with notice:

Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.

i.e.:

 "Microsoft.VisualStudio.Shell.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and "Microsoft.VisualStudio.Shell.10.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
References which depend on "Microsoft.VisualStudio.Shell.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Shell.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Shell.10.0.dll].
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Shell.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Shell.10.0.dll
Project file item includes which caused reference "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Shell.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Shell.10.0.dll".
Microsoft.VisualStudio.Shell.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
References which depend on "Microsoft.VisualStudio.Shell.10.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Shell.10.0\v4.0_12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Shell.10.0.dll].

and example for .NET 4.0 - similar as above except sln file - 'vsSolutionBuildEvent.sln':
* https://ci.appveyor.com/project/3Fs/vssolutionbuildevent/build/1.0.2

warning MSB3274: The primary reference "Microsoft.VisualStudio.Shell.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".

yes, because all projects with 'vsSolutionBuildEvent.sln' used target platform .NET 4.0, and AppVeyor provides the C:\Program Files (x86)\Microsoft Visual Studio 12.0\VSSDK\VisualStudioIntegration\ where all libraries compiled for .NET 4.5

and of course C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.targets" was not found. etc.

My variants for this ? :)


What I already tested:

  • Replacing in references on this lib: VSSDK.Shell.10 10.0.4 without dependencies, i.e. only Microsoft.VisualStudio.Shell.10.0.dll for .NET 4.0
  • And removed the <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.targets" /> from project file

yep, this working variant for your server... but, current mixes is not convenient at least... i.e. this still require the full VSSDK, unstable links, etc.

I also found this story
and also have a question for this variant here

but.. it will be helpful to see VSSDK2010 for supporting .NET 4.0 on AppVeyor!

OR!
What your variants ? or what you think ?

  1. 1 Posted by reg on 06 Feb, 2015 11:38 PM

    reg's Avatar

    and yes with warning for working variant above i see C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Shell.10.0\v4.0_10.0.0.0 o_O

    the main difference for the Solution files above it's a target platform 'vsSolutionBuildEvent.sln' -> .NET 4.0 'vsSolutionBuildEvent_2012.sln' & 'vsSolutionBuildEvent_2013.sln' -> .NET 4.5

    it means server already contains in GAC Microsoft.VisualStudio.Shell.10.0 for .NET 4.0 ? so, what's going on ?

  2. Support Staff 2 Posted by Feodor Fitsner on 09 Feb, 2015 10:21 PM

    Feodor Fitsner's Avatar

    Right, there is no VS 2010 SDK on build workers. We may support it in the future.

    For now I'd recommend packaging into 7z archive all required .targets files and reference assemblies with preserving their original locations and then just downloading/unpacking them during the build. You can GAC any assemblies too.

  3. 3 Posted by reg on 11 Feb, 2015 08:50 PM

    reg's Avatar

    Thanks for reply, Feodor!

    We may support it in the future.

    it will be great!

    today, I resolved this problem with our special script:
    https://gist.github.com/3F/3f2f56dfc2a01dc99c63

    all working fine :)
    https://ci.appveyor.com/project/3Fs/vssolutionbuildevent/build/1.2

    in general this result after replacing the VisualStudio.Shell.10.0 (only, as I said above) ..

  4. 4 Posted by reg on 11 Feb, 2015 09:03 PM

    reg's Avatar

    hmm., a little problem

    https://ci.appveyor.com/project/3Fs/vssolutionbuildevent/build/1.2/...

    i see next: bin\Releases.zip

    • Bridge_v1.0_[fff3f45][net40].zip
    • CI.MSBuild_v1.0_[fff3f45][net40].zip
    • Devenv_v1.0_[fff3f45][net40].zip
    • Provider_v1.0_[fff3f45][net40].zip
    • Release_notes.txt

    but i can't find the .vsix file о_О

    should be also the vsSolutionBuildEvent_v0.11.0.40096_[fff3f45][net40].vsix

    in log I also see the normal state:

    2/11/2015 8:12:39 PM [INFO]: Launching action 'Pack 'vsSBE'' :: Configuration - 'CI_Debug|Mixed Platforms'
    2/11/2015 8:12:39 PM [INFO]: Use Script Mode
    2/11/2015 8:12:39 PM [INFO]: [Post] finished SBE: Pack 'vsSBE'
    

    and in Release_notes.txt:

    * Configuration:   'CI_Debug' (Folders: Debug)
    * .NET version:     v4.0;
    * Build number:     40092;
    * Branch Sha1:      fff3f45;
    * Branch Name:      HEAD;
    * Branch revCount:  184;
    ------------------------------------------
    
    Versions:
    
    * The 'Bridge':                 v1.0;
    * The 'CI.MSBuild':             v1.0;
    * The 'Devenv':                 v1.0;
    * The 'Provider':               v1.0;
    * The 'vsSolutionBuildEvent':   v0.11.0.40092;
    

    Where is vsix file :) ?

  5. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 01:54 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

 

21 Mar, 2019 05:38 PM
21 Mar, 2019 06:16 AM
21 Mar, 2019 01:47 AM
20 Mar, 2019 11:39 PM
20 Mar, 2019 09:03 PM
20 Mar, 2019 08:55 PM