如何让 SQL 个项目从 props 文件加载版本?
How to make SQL projects load version from props file?
我在visual studio中创建了几个SQL项目,我想集中管理dacpac的版本。为了实现我想使用答案 post :
重用道具文件
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="$(MSBuildProjectExtension) == '.csproj'">
<CommonPlatform>$(Platform)</CommonPlatform>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)myfile.snk</AssemblyOriginatorKeyFile>
<LinkKeyFile>$(MSBuildThisFileDirectory)myfile.snk</LinkKeyFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup Condition="$(MSBuildProjectExtension) == '.csproj'">
<Compile Include="$(MSBuildThisFileDirectory)CommonAssemblyInfo.cs">
<Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
<Import Project="StyleCop\StyleCop.Targets" Condition="$(MSBuildProjectExtension) == '.csproj'"/>
<!--Version management for DACPAC projects -->
<PropertyGroup Condition="$(MSBuildProjectExtension) == '.sqlproj'">
<DacVersion>15.1.0.0</DacVersion>
<DacDescription>Release 15.1</DacDescription>
</PropertyGroup>
</Project>
在sql项目中我添加了如下导入语句:
<Import Project="..\..\Environment\MyPropsFile.props" />
如果我在 visual studio 中检查项目的属性,我得到了这个:
我构建了项目并解压了 dacpac 文件,我检查了 DacMetadata.xml 并得到了这个:
<?xml version="1.0" encoding="utf-8"?>
<DacType xmlns="http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02">
<Name>MyDB</Name>
<Version>1.0.0.0</Version>
</DacType>
如果我为 sql 项目构建 MSBuild 并解压 dacpac 文件,我检查 DacMetadata.xml 并得到这个:
<?xml version="1.0" encoding="utf-8"?>
<DacType xmlns="http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02">
<Name>MyDB</Name>
<Version>15.1.0.0</Version>
<Description>Release 15.1</Description>
</DacType>
如何查看Visual Studio版本和描述的变化?
这种方法可以在 Visual Studio 中工作,但不幸的是,加载解决方案时缓存了 DAC 版本元数据。这意味着如果您希望从 props 文件中重新加载元数据,则必须关闭并重新打开整个解决方案。 (卸载并重新加载数据库项目是不够的)。
我在visual studio中创建了几个SQL项目,我想集中管理dacpac的版本。为了实现我想使用答案 post :
重用道具文件<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="$(MSBuildProjectExtension) == '.csproj'">
<CommonPlatform>$(Platform)</CommonPlatform>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)myfile.snk</AssemblyOriginatorKeyFile>
<LinkKeyFile>$(MSBuildThisFileDirectory)myfile.snk</LinkKeyFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup Condition="$(MSBuildProjectExtension) == '.csproj'">
<Compile Include="$(MSBuildThisFileDirectory)CommonAssemblyInfo.cs">
<Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
<Import Project="StyleCop\StyleCop.Targets" Condition="$(MSBuildProjectExtension) == '.csproj'"/>
<!--Version management for DACPAC projects -->
<PropertyGroup Condition="$(MSBuildProjectExtension) == '.sqlproj'">
<DacVersion>15.1.0.0</DacVersion>
<DacDescription>Release 15.1</DacDescription>
</PropertyGroup>
</Project>
在sql项目中我添加了如下导入语句:
<Import Project="..\..\Environment\MyPropsFile.props" />
如果我在 visual studio 中检查项目的属性,我得到了这个:
我构建了项目并解压了 dacpac 文件,我检查了 DacMetadata.xml 并得到了这个:
<?xml version="1.0" encoding="utf-8"?>
<DacType xmlns="http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02">
<Name>MyDB</Name>
<Version>1.0.0.0</Version>
</DacType>
如果我为 sql 项目构建 MSBuild 并解压 dacpac 文件,我检查 DacMetadata.xml 并得到这个:
<?xml version="1.0" encoding="utf-8"?>
<DacType xmlns="http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02">
<Name>MyDB</Name>
<Version>15.1.0.0</Version>
<Description>Release 15.1</Description>
</DacType>
如何查看Visual Studio版本和描述的变化?
这种方法可以在 Visual Studio 中工作,但不幸的是,加载解决方案时缓存了 DAC 版本元数据。这意味着如果您希望从 props 文件中重新加载元数据,则必须关闭并重新打开整个解决方案。 (卸载并重新加载数据库项目是不够的)。