在 Visual Studio 2017 年在 Windows Silverlight 中开发的解决方案?

Solution for developing in Windows Silverlight in Visual Studio 2017?

我们公司正在尝试一起删除 Visual Studio 2015,但我们仍然有一些 Silverlight 代码。

是否有一种解决方法可以在 VS 2017 中使用 Silverlight,即使它不受支持,或者更轻量级的解决方案 而不是必须同时保留两者 IDE' s 还是只使用 2015?

我只能同时使用两个 IDE,因为 2017 年不支持它。该解决方案使用 2017,但如果我必须编辑 SL 代码,我必须返回到以前的 IDE 版本。

引用Visual Studio 2017 Platform Targeting and Compatibility

Compatibility with Previous Releases

Installation

You can install and use Visual Studio 2017 alongside previous versions of Visual Studio, including Visual Studio 2015, Visual Studio 2013, and Visual Studio 2012.

Silverlight

Silverlight projects are not supported in this version of Visual Studio. To maintain Silverlight applications, continue to use Visual Studio 2015.

虽然 Visual Studio 2017 确实不支持 Silverlight5 项目,但我发现 Visual Studio 2017 附带的 MSBuild 能够构建它们,如果您安装了 Silverlight5 SDK

我知道这不是一个理想的解决方案,但如果我只需要重建 SL5 代码,至少我不需要保留较旧的 Visual Studio 安装。

例如,我使用以下 build.bat 文件通过 VS2017 构建 SL5 项目:

@setlocal

@rem Initialize build environment of Visual Studio 2017
call "c:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\Tools\VsMSBuildCmd.bat"
@echo on

@rem Delete output directory
rmdir /S /Q sl5

@rem Clean project
msbuild ..\src\Pkcs11Interop\Pkcs11Interop\Pkcs11Interop.csproj /p:Configuration=Release /p:Platform=AnyCPU /target:Clean || goto :error

@rem Build project
msbuild ..\src\Pkcs11Interop\Pkcs11Interop\Pkcs11Interop.csproj /p:Configuration=Release /p:Platform=AnyCPU /target:Build || goto :error

@rem Copy result to output directory
mkdir sl5 || goto :error
copy ..\src\Pkcs11Interop\Pkcs11Interop\bin\Release\Pkcs11Interop.dll sl5 || goto :error
copy ..\src\Pkcs11Interop\Pkcs11Interop\bin\Release\Pkcs11Interop.xml sl5 || goto :error

@echo *** BUILD SL5 SUCCESSFUL ***
@endlocal
@exit /b 0

:error
@echo *** BUILD SL5 FAILED ***
@endlocal
@exit /b 1

Visual Studio Marketplace 上的 Silverlight for Visual Studio 扩展在 Visual Studio 2017 年和 Visual Studio 2019 年非正式地支持 Silverlight 项目。

免费。

披露:
我发布了 Visual Studio 扩展。