【发布时间】:2019-06-26 16:12:04
【问题描述】:
我正在使用 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 用户界面添加引用,我会看到“框架”(GAC)中有一堆 Microsoft.* 和 System.* 选项,但 Microsoft.WindowsAzure.ServiceRuntime 不是其中之一他们。只是为了确认我启动了 ILSpy 并选择了“从 GAC 打开...”,果然它与一堆其他未出现在 VS 用户界面中的程序集一起存在。
如何让 VS 从 GAC 加载此引用?
谢谢
【问题讨论】:
-
试试我的解决方案怎么样。如果有任何更新,您可以在这里分享,以便我们为您检查。
标签: visual-studio msbuild visual-studio-2019