我使用的是 Visual Studio 2019 预览版 2.1。我有一个 .NET Framework 4.6.1 类库 C# 项目,其中有一些采用旧 csproj 项目格式 (ToolsVersion="15.0") 的 Azure 引用。这个旧的 csproj 目前构建和工作得很好。我正在尝试迁移到新的项目格式。一切都很顺利,除了我有一个引用不是来自 NuGet,它来自 GAC:Microsoft.WindowsAzure.ServiceRuntime。但是,我还没有弄清楚如何获取新的项目格式来查找程序集。例如,这是新的项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.KeyVault" Version="2.3.2" />
<PackageReference Include="Microsoft.Azure.KeyVault.Core" Version="1.0.0" />
<PackageReference Include="Microsoft.Azure.KeyVault.WebKey" Version="2.0.7" />
<PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="3.19.1" />
<PackageReference Include="Microsoft.Rest.ClientRuntime" Version="2.3.8" />
<PackageReference Include="Microsoft.Rest.ClientRuntime.Azure" Version="3.3.7" />
<PackageReference Include="Microsoft.WindowsAzure.ConfigurationManager" Version="3.2.3" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.2" />
<PackageReference Include="WindowsAzure.Storage" Version="9.0.0" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.WindowsAzure.ServiceRuntime, Version=2.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
</Project>
事实上,Microsoft.WindowsAzure.ServiceRuntime 引用与旧格式完全相同。当在 VS 中加载它时,会产生以下警告:
警告 MSB3245 无法解析此引用。无法找到程序集“Microsoft.WindowsAzure.ServiceRuntime,Version=2.7.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL”。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,则可能会出现编译错误。 MyProject C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 2114
我尝试删除该版本:
<Reference Include="Microsoft.WindowsAzure.ServiceRuntime" />
但这并没有帮助。如果我删除它并尝试从 VS 用户界面添加引用,我会看到“Framework”(GAC)中有一堆 Microsoft.* 和 System.* 选项,但 Microsoft.WindowsAzure.ServiceRuntime 不是其中之一他们。只是为了确认我启动了 ILSpy 并选择了“从 GAC 打开...”,果然它与一堆未出现在 VS 用户界面中的其他程序集一起存在。
如何让 VS 从 GAC 加载此参考?
Thanks