我正在使用 Visual Studio 2019,并且正在尝试更改我的 C# 版本。我这样做的原因是我使用的构建服务器使用旧版本的 VS/MSBuild 来构建和部署代码(这是我无法控制的)。因此我需要使用 C# 5。
在早期版本的 Visual Studio 中,您可以从 [Project] -> Properties -> Build -> Advanced 中的菜单执行此操作。对于 VS2019 微软,以其无限的智慧,决定让这更难。显然您需要手动编辑项目文件并添加:
<PropertyGroup>
<LangVersion>[some version here]</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
手动添加到您的项目文件。这一切都很好,但我似乎无法让它发挥作用。它只是忽略它,即使在我卸载并重新加载它之后。这是我的项目文件的快照:
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LangVersion>5</LangVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{58FE5465-851B-471F-B6A9-9C861FA5C022}</ProjectGuid>
<OutputType>Library</OutputType>
...
Run Code Online (Sandbox Code Playgroud)
知道我怎样才能做到这一点吗?这可能是我错过的一些非常愚蠢的事情。注意:我确实看到了上一个问题,但它缺乏细节。
在我的工作场所,我们试图让 Vite 与 Yarn Workspaces(在 Yarn v2 中)一起使用。
我们想要创建一个测试环境,在其中使用从同一存储库但不同工作区发布的包之一。为了显示:
packages
package-a
package-b
Run Code Online (Sandbox Code Playgroud)
package.json这些包主要是这样引用的:
packages
package-a
package-b
Run Code Online (Sandbox Code Playgroud)
where 是这样引用package-b的:package-apackage-bpackage.json
{
...
"workspaces" : [
"packages/package-a",
"packages/package-b"
]
...
"packageManager": "yarn@3.3.1"
}
Run Code Online (Sandbox Code Playgroud)
但我们发现,当在 Vite 中运行应用程序时,该包没有被加载到浏览器中。这导致了如下错误:
Uncaught SyntaxError: The requested module ... does not provide an export named ...
Run Code Online (Sandbox Code Playgroud)
仅在运行时,但 TypeScript 和 ESLint 对我们的导入非常满意。
请参阅下面我的回答以找出我们的解决方案。